flowable并行网关容易忽略的问题

前言

执行流程推进,但是到了并行网关后,任务莫名的“消失”,不再往后执行, 并行网关第三种常用方式:(我遇见的问题),以及我的解决方案

并行网关

并行网关允许将流程分成多条分支,也可以把多条分支汇聚到一起,并行网关的功能是基于进入和外出顺序流的。

fork 分支:并行后的所有外出顺序流,为每个顺序流都创建一个并发分支。
join 汇聚:所有到达并行网关,在此等待的进入分支, 直到所有进入顺序流的分支都到达以后, 流程就会通过汇聚网关。
注意:如果同一个并行网关有多个进入和多个外出顺序流, 它就同时具有分支和汇聚功能。 这时,网关会先汇聚所有进入的顺序流,然后再切分成多个并行分支。

并行网关使用:

通常在使用网关的时候都是排他和并行联合起来使用

简单说说排他网关:

排他网关:根据条件往下执行,通常是一对二或者一对多,但是特点就是只能执行命中一条,如果由于条件相同,命中不止一条,那么就会执行流程先定义的那一条,如果没有命中就会抛异常;

 并行网关第一种常用方式:

并行网关:通常是成对出现

这种很好理解,零件生产后组装,同时生产,缺一不可

并行网关第二种常用方式: 

这种是有分支属性,消息会下发到每一条分支,但是要注意的是:经理审核完以后,流程看似结束,但总监审核的那条分支依然存在,当总监审核完以后才算是真正结束流程

 并行网关第三种常用方式:(我遇见的问题)

具有汇聚属性的并行使用

流程乍一看没毛病,但实际上是一个死局,例如上例,合同处理以后,排他网关直流走其中一条,其中一条直接流入并行网关,想让并行网关下发消息,另一条也是有概率流转到并行网关的,也是想让并行网关下发消息,但此并行网关是有两个入口的,根据并行网关的汇聚属性,必须两个入口的数据都到达以后才会执行下一步,但是排他网关限制了只会有一条流出,此并行网关永远都不会继续执行。

解决方案

需要重新画流程

因为业务需求,流程就要这么走,如果不改变逻辑,那我觉得做一个所有人都看不见的系统处理来接收参数往后走,这样并行网关就变成了—个入口,这样就能够保留原有逻辑,同时不影响效率。包容网关也能解决问题,流程跳转也能解决问题。

总结:流程使用前注意他的属性,充分理解后画出的流程才会严谨简洁

引用

遇到相同问题的:

flowable并行网关和排他网关连用bug?_Java-CSDN问答

关于网关的介绍,也有社区博主写的很好

Flowable 之事件和网关-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
并行网关Flowable工作流引擎中的一个重要组件,用于同时执行多个并发的执行流。它可以将一个执行流分岔成多个同时执行的执行流,并将多个执行流合并为一个执行流。与其他网关不同的是,并行网关不会解析流条件,即使顺序流中定义了流条件,也会被忽略并行网关可以同时具有分岔和合并两种行为,允许多个执行流到达该网关时被合并,然后再随机分岔为多个执行流。因此,并行网关在处理多个并发执行流时非常灵活和强大。 同时,包含网关也可以充当并行网关的角色。包含网关是排他网关并行网关的结合体,可以选择多于一条顺序流,并且在执行流中具有分岔和合并的行为。当包含网关作为并行网关使用时,它遵循并行网关的特性,既有分岔行为也有合并行为。与并行网关不同的是,包含网关还可以解析流条件,并根据条件选择不同的顺序流进行执行。因此,包含网关在流程中的使用非常灵活,既可以用作排他网关,也可以用作并行网关。 总结来说,Flowable中的并行网关是一个同时执行多个并发执行流的组件,可以实现分岔和合并的行为,而包含网关则是排他网关并行网关的结合体,既可以充当排他网关,也可以充当并行网关。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万能冲!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值