工作流引擎flowable

2023-03-04 23:42:26 来源:网络

工作流引擎flowable

flowable工作流分支汇聚

    flowable 常用的有三种网关:并行网关,排他网关,包容网关

    并行网关:所有网关后的活动都会同时启动,即使有条件也会忽略条件,汇聚时,所有完成的线路在此等候。直到所有的线路都执行完成,才继续向下执行

    排他网关:按照输出流的顺序计算 ,第一个满足条件的活动会启动,其他的直接忽略,如果所有的条件都不满足,引擎会抛出异常。只有一个分支

    包容网关:判断每一个条件,符合条件的活动启动,不符合不会启动。汇聚时,等待所有启动的线路全部完成,才会继续下一个节点

    注:此处的启动,是指活动产生相应的活动实例

    所有的分支活动都会启动,汇聚节点会启动多次。

    

例1:

不存在网关时,启动流程同时开启,A,B两个活动。 A提交产生C, B提交也会产生C。 同时会存在两个C ,提交一个C的时候,流程不会结束,另外一个C还可以继续提交,第二个C提交后,流程结束。

例:2:

流程同时产生A,B 两个活动,A提交了到达网关,等待B提交。B提交了才会到达C

总结:使用网关按照网关的规定执行,不使用网关,之前启动,即使同一个节点可能启动多次。

工作流引擎flowable基于springboot下,命令模式实现源码分析

在init()方法里,有一大堆的初始化。有个方法initCommandExecutors();

方法initCommandExecutors里的内容如下

方法initCommandInterceptors里的getDefaultCommandInterceptors内容

创建了各种拦截器,也就是当执行某个命令时,会执行这些拦截器。(包括了日志、事务等拦截器)

例如当执行plete完成任务时,会被事务拦截器拦截,启动事务等其它功能,如果需要我们也可以自定义拦截器

方法initCommandExecutor里的内容如下

把各个拦截器命令串联起来

免责声明:内容来自网络,若侵犯您的权利,请在一个月内通知我们,会及时删除

@轻流