计算机系统应用教程网站

网站首页 > 技术文章 正文

activiti中的网关是干什么的?(activiti包含网关)

btikc 2024-11-15 16:36:03 技术文章 3 ℃ 0 评论

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

排他网关

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

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

并行网关

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

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

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

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

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

包容网关

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

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

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

事件网关

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

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

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

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

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表