flowable 执行监听器
时间: 2023-08-04 18:04:55 浏览: 150
Flowable的执行监听器是指在Flowable流程引擎中,用于监听流程实例的启动、结束、活动开始、活动结束、连线选择等事件的监听器。在Flowable中,可以通过创建一个实现ExecutionListener接口的类来实现执行监听器。这个类需要使用@Slf4j和@Component注解进行标记,并且需要实现notify方法来处理具体的事件。在notify方法中,可以通过参数execution来获取相关的执行信息。[1]
需要注意的是,ExecutionListener只能访问与流程实例相关的信息,而不能直接访问任务相关的信息,例如任务的候选人、任务的执行者等。如果需要处理与任务相关的事件,可以使用TaskListener来实现。TaskListener可以监听任务的创建、分配、完成等事件,并且可以访问任务相关的信息,并对任务进行操作,例如设置任务的执行人、指定任务的代理人等。[2][3]
相关问题
flowable注册监听器
Flowable是一个流程引擎框架,通过监听器可以对流程引擎的事件进行监听和处理。Flowable提供了多种监听器,包括任务监听器、执行监听器、实体监听器等。其中,注册监听器可以通过`ProcessEngineConfiguration`类的`setEventListeners`方法进行配置,代码示例如下:
```
ProcessEngineConfiguration config = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
config.setJdbcUrl("jdbc:h2:mem:flowable");
config.setJdbcUsername("sa");
config.setJdbcPassword("");
config.setJdbcDriver("org.h2.Driver");
// 创建自定义的监听器
List<EventListener> eventListeners = new ArrayList<>();
eventListeners.add(new MyTaskEventListener());
eventListeners.add(new MyExecutionEventListener());
eventListeners.add(new MyEntityEventListener());
config.setEventListeners(eventListeners);
ProcessEngine processEngine = config.buildProcessEngine();
```
在以上代码中,我们创建了自定义的任务监听器、执行监听器和实体监听器,并将它们添加到了监听器列表中,最后通过`buildProcessEngine`方法来创建流程引擎。
flowable全局监听器
Flowable 全局监听器可以用于监听所有流程引擎实例中的事件。全局监听器必须实现 org.flowable.common.engine.api.delegate.event.FlowableEventListener 接口,并且注册到流程引擎配置中。当事件发生时,监听器将被触发并执行特定的业务逻辑。
以下是一个简单的 Flowable 全局监听器示例:
```java
public class MyGlobalEventListener implements FlowableEventListener {
@Override
public void onEvent(FlowableEvent event) {
// 处理事件
System.out.println("Event received: " + event.getType());
}
@Override
public boolean isFailOnException() {
return false;
}
@Override
public boolean isFireOnTransactionLifecycleEvent() {
return false;
}
}
```
在上面的示例中,onEvent() 方法处理监听到的事件。isFailOnException() 方法返回 false,表示如果监听器出现异常,流程引擎仍将继续执行。isFireOnTransactionLifecycleEvent() 方法也返回 false,表示不监听事务生命周期事件。
要将全局监听器注册到流程引擎配置中,可以使用以下代码:
```java
ProcessEngineConfiguration config = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
config.setAsyncExecutorActivate(false);
List<FlowableEventListener> eventListeners = new ArrayList<>();
eventListeners.add(new MyGlobalEventListener());
config.setEventListeners(eventListeners);
```
在上面的示例中,将 MyGlobalEventListener 添加到 eventListeners 列表中,并将列表设置为流程引擎配置的事件监听器。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)