Skip to content
广告❤️成为赞助商

流程任务监听

流程任务监听,提供 创建、分配、撤销、驳回、超时、等状态的全流程链操作监听,可用于记录操作日志和业务联动。

全局监听

全局任务监听、不区分流程类型监听的是所有的流程定义执行的任务

  • 同步方式,实现 TaskListener 接口、并注入 SpringBoot 容器。
java
// 测试同步方式全局任务监听,实现 `TaskListener` 接口
@Component // 注入 `SpringBoot` 容器,该方式需要被容器扫描到,或者 `@Bean` 方式注入。
public class TestTaskListener implements TaskListener {

    /**
     * 流程引擎监听通知
     *
     * @param eventType   事件类型
     * @param supplier    监听任务提供者
     * @param taskActors  监听任务参与者
     * @param nodeModel   当前执行节点 {@link NodeModel} 为 null 需要根据 runtimeService.getNodeModel(instanceId, nodeKey) 方法获取
     * @param flowCreator 处理人员
     * @return 通知结果 true 成功 false 失败
     */
    @Override
    public boolean notify(TaskEventType eventType, Supplier<FlwTask> supplier, List<FlwTaskActor> taskActors,
                   NodeModel nodeModel, FlowCreator flowCreator) {
        ...
        return true;
    }

}
  • 异步方式,启动 EventListener 事件监听配置、并注入 SpringBoot 容器。
  • 注意!添加注解 @EnableAsync @Async 开启异步处理,否则会阻塞线程。
java
@EnableAsync
@Configuration
public class TestConfig {

    /**
     * 异步任务事件监听处理
     * <p>
     * application.yml 开启  flowlong.eventing.task = true
     * </p>
     */
    @Async
    @EventListener
    public void onTaskEvent(TaskEvent taskEvent) {
        ...
    }
}

更适合中国人的工作流引擎