activiti中的网关是干啥的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了activiti中的网关是干啥的?相关的知识,希望对你有一定的参考价值。

参考技术A 网关用于控制流程走向,根据功能不同可以划分为以下4种网关:

用来对流程中的决定进行建模,流程执行到该网关时,按照输出流的顺序逐个计算,当条件为true时,继续执行当前网关的输出流。

如果多个线路的计算结果都为true,那么只会执行第一个值为true的网关,忽略其他表达式的值为true的网关。如果多个网关计算结果没有为true的值,则引擎会抛出异常。

并行网关用来对并发的任务进行流程建模,它能把单条线路任务拆分(fork)成多个路径并行执行或将多条线路合并(join).

并行网关的功能取决于输入、输出顺序流:

拆分:并行执行所有的输出顺序流,并且为每一条顺序流创建一个并行执行路线;

合并:所有从并行网关拆分并执行完成的线路均再次等候,直到所有的线路都执行完成才继续向下执行。

并行网关还允许在线路上嵌套并行网关,也就是在fork拆分的线路上再添加n个fork线路,只要保证最后又一个join点合并拆分的线路即可。

包容网关融合了排他网关和并行网关的特性,排他网关允许在每条线路上设置条件,并行网关可以同时执行多条线路,包容网关即可以同时执行多条线路,又允许再网关上设置条件。

拆分:计算每条线路上的表达式,当表达式计算结果为true时,创建一个并线线路并继续执行;

合并:所有从并行网关拆分并执行完成的线路均再次等候,直到所有的线路都执行了才继续向下执行。

事件网关是专门为中间捕获事件设置的,它允许设置多个输出流指向多个不同的中间捕获事件(最少2个)。在流程执行到事件网关后,流程处于“等待”状态,因为中间捕获事件需要依赖中间抛出事件触发才能更改“等待”状态为“活动”状态,定时器捕获事件除外(它由时间驱动)。

关于时间网关需要注意几点:

1、事件网关的输出流数量必须大于2个;

2、事件网关的输出流类型只能是中间捕获事件,activiti不支持接受任务后面的事件网关;

3、中间捕获事件的输出流只能有一个。

以上是关于activiti中的网关是干啥的?的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ 是干啥的?有啥作用?能举个实际开发的例子吗

Python类中的self到底是干啥的

textview是干啥的

不会还有人不知道python类中的self到底是干啥的吧?(详细理解)

java中onCreate()方法是干啥用的

CSS里的a:active 是干啥用的,请举例说明