Flowable中的多实例事件

简介: 在flowable6.3以后的版本中,支持了MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION事件,这个事件顾名思义就是在多实例节点完成的时候,flowable引擎去发布这个完成事件信号。

在flowable6.3以后的版本中,支持了MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION事件,这个事件顾名思义就是在多实例节点完成的时候,flowable引擎去发布这个完成事件信号。该事件同其他的事件一样,定义在FlowableEngineEventType.java类中。

关于多实例所支持的事件类型如下所示:

MULTI_INSTANCE_ACTIVITY_COMPLETED(多实例完成),

 MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION(多实例正常完成),

  MULTI_INSTANCE_ACTIVITY_CANCELLED(多实例取消),

不管是什么事件,我们在开发的过程中往往只会关心事件的类型以及事件所产生的数据而已。现在既然我们知道了新增的事件类型是

MULTI_INSTANCE_ACTIVITY_COMPLETED,

 MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION,

  MULTI_INSTANCE_ACTIVITY_CANCELLED,

三个,那接下来,我们看一下这些事件所对应的事件处理类,具体细节在AbstractFlowableEngineEventListener类中如下所示:

 case MULTI_INSTANCE_ACTIVITY_COMPLETED:
                       multiInstanceActivityCompleted((FlowableMultiInstanceActivityCompletedEvent) flowableEngineEvent);
            break;
  case MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION:
                       multiInstanceActivityCompletedWithCondition((FlowableMultiInstanceActivityCompletedEvent) flowableEngineEvent);
           break;
  case MULTI_INSTANCE_ACTIVITY_CANCELLED:
                          multiInstanceActivityCancelled((FlowableMultiInstanceActivityCancelledEvent) flowableEngineEvent)
 protected void multiInstanceActivityCompleted(FlowableMultiInstanceActivityEvent event) {}
    protected void multiInstanceActivityCompleted(FlowableMultiInstanceActivityCompletedEvent event) {}

    protected void multiInstanceActivityCompletedWithCondition(FlowableMultiInstanceActivityCompletedEvent event) {}
  
      protected void multiInstanceActivityCancelled(FlowableMultiInstanceActivityCancelledEvent event) {}

MULTI_INSTANCE_ACTIVITY_COMPLETED事件对应的事件类为:FlowableMultiInstanceActivityCompletedEvent

MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION事件对应的事件类为:FlowableMultiInstanceActivityCompletedEvent。

MULTI_INSTANCE_ACTIVITY_CANCELLED事件对应的事件类为:FlowableMultiInstanceActivityCancelledEvent。
由上面的源码可以知道 MULTI_INSTANCE_ACTIVITY_COMPLETED与MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION事件对应的事件类是相同的,都是FlowableMultiInstanceActivityCompletedEvent。

MULTI_INSTANCE_ACTIVITY_CANCELLED事件对应的事件类为:FlowableMultiInstanceActivityCancelledEvent。

通过FlowableMultiInstanceActivityCompletedEvent类我们可以获取到的属性信息如下:

numberOfInstances(多实例的个数)

numberOfActiveInstances(多实例活动的个数)

numberOfCompletedInstances(多实例已经完成的活动个数)

关于更多的事件以及事件监听器可以参考Activiti权威指南一书 。

相关文章
flowable 启动流程的三种方式
flowable 启动流程的三种方式
254 0
|
4月前
|
Java Spring 容器
Spring中事件监听(通知)机制详解与实践
Spring中事件监听(通知)机制详解与实践
119 0
|
9月前
|
设计模式 消息中间件 Java
SpringBoot事件监听机制及观察者/发布订阅模式详解
介绍观察者模式和发布订阅模式的区别。 SpringBoot快速入门事件监听。 什么是观察者模式? 观察者模式是经典行为型设计模式之一。 在GoF的《设计模式》中,观察者模式的定义:在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。如果你觉得比较抽象,接下来这个例子应该会让你有所感觉:
|
11月前
|
XML SQL Java
玩转 Flowable 流程实例
玩转 Flowable 流程实例
|
11月前
|
XML SQL Java
Flowable 设置任务处理人的四种方式
Flowable 设置任务处理人的四种方式
|
11月前
|
XML Java 数据格式
Flowable 服务任务执行的三种方式
Flowable 服务任务执行的三种方式
|
开发框架 Java Spring
深入理解Spring的事件通知机制
Spring作为一个优秀的企业级应用开发框架,不仅提供了众多的功能模块和工具,还提供了一种灵活高效的事件通知机制,用于处理组件之间的松耦合通讯。本文将详细介绍Spring的事件通知机制的原理、使用方法以及示例,希望对大家深入理解Spring框架有所帮助。
198 0
|
Java 调度
任务调度开源框架Quartz动态添加、删除、修改任务
任务调度开源框架Quartz动态添加、删除、修改任务
任务调度开源框架Quartz动态添加、删除、修改任务
|
Java Spring 容器
Spring 源码阅读 16:初始化事件广播器 & 注册事件监听器
本文分析 Spring 上下文初始化过程中, 初始化事件广播器和注册事件监听器的过程。它们是 Spring 框架提供的基于 Pub/Sub 机制的事件发布和订阅模型。
172 0