activiti 并行网关拆合过程中流程实例拆分情况分析

本文详细介绍了并行网关在工作流中的作用,包括分支和汇聚功能。并行网关能够将流程实例拆分为多个并发执行实例,并在所有分支完成后进行汇聚。通过实例演示,展示了执行实例在不同阶段的拆分与合并过程,以及如何通过数据库记录跟踪这些变化。
摘要由CSDN通过智能技术生成

1. 并行网关定义

  • 一个流程中流程实例只有一个,执行实例可以有多个;

  • 并行网关的功能是基于进入和外出的顺序流提供的;

  • 分支:

    • 并行后的所有外出顺序流,为每个顺序流都创建一个并发分支;
  • 汇聚:

    • 所有到达并行网关,在此等待的进入分支,知道所有进入顺序流的分支都到达以后,流程就会通过汇聚网关。
  • 并行网关的进入和外出都是使用相同的节点标识;

  • 如果同一个并行网关有多个进入和多个外出顺序流,它就同时具有分支和汇聚功能。这时,网关会先汇聚所有进入的顺序流,然后再切分成多个并行分支。

  • 并行网关不会解析条件,即使顺序流中定义了条件,也会被忽略。

  • 并行网关不需要是“平衡”的(比如,对应并行网关的进入和外出节点数目不一定相等)。

注意:每条并行的线路,到达汇聚网关后,都会增加一次网关的活动实例,即在表 act_hi_actinst 生成一条 ACT_NAME_ 为汇聚网关名的条目,该条目的执行实例 ID 是这条执行完成的线路的执行实例 ID,其意义在于记录这条线路的完成时间。

2. 示例演示:

模型如图:

image-20220403184111122

  • 流程实例执行到并行网关1,执行实例和流程实例 ID 都为 52552;
  • 经过并行网关1拆分后,分支为两个执行实例,执行实例分别为:52555 和 52556;
  • 我们让上面的那个执行实例先走,到了网关 1_1 后,执行实例 52555 被网关 1_1 继续分解为两个执行实例:52555 和 52572 。
  • 完成任务 1_1 后,查看表 act_ru_execution

image-20220403184843570

可以看出,即使到达了网关,任务 1_1 的执行实例还没有结束,在网关 1_2 等待任务 1_2 的执行实例结束之后汇聚。

  • 完成任务 1_2 后,表 act_ru_execution

image-20220403185127148

可以看出,执行实例 52555 和执行实例 52572 汇聚后,变回了执行实例 52555。

  • 继续完成“线路1经过汇聚后的任务”,表 act_ru_execution

image-20220403185405761

执行实例 52555 再次在网关2进入了等待状态;

  • 完成执行实例 52556 的所有任务后,流程实例运行完毕。先来看看表 act_hi_taskinst

image-20220403185734696

蓝色部分不用管,是之前的实例;

根据表中的字段 EXECUTION_ID_ 我们就可以分析出流程实例如下的拆合过程:

image-20220403190156485
用一个表可以完美诠释该流程:

阶段拆分情况流程实例ID执行实例ID
1. 到达网关1之前5255252552
2. 到达网关1之后(分支)线路15255252555
线路25255252556
3. 到达网关1_1之后(分支)线路1_15255252555
线路1_25255252572
线路25255252556
4. 到达网关1_2之后(汇聚)线路15255252555
线路25255252556
5. 到达网关2之后(汇聚)5255252552

3. 总结

  • 流程实例被并行网关拆分后,几个分支的执行实例 ID 是重新定义的,流程实例在 act_ru_execution 表中被定格在并行网关处,即字段 ACT_ID_ 一直都是并行网关;
  • 执行实例被并行网关拆分后,分支中的一个分支执行实例的 ID 等于拆分前的执行实例 ID ,其他分支执行实例 ID 重新定义;
  • 执行实例被合并后,合并后的执行实例 ID 等于拆分前的执行实例 ID。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值