定时边界事件
定义
定时器边界事件是附属在流程活动(如用户任务、系统任务、子流程)中的事件,当流程到达
了流程活动时,引擎会创建一个定时器,当定时器触发后,流程会沿定时边界事件的后继路线继续
执行
注意 使用定时器事件需要开启flowable的作业执行器 configuration.setAsyncExecutorActivate(true);
图形标记
定时边界事件是一个标准的边界事件(边界上的一个圆圈),内部是一个定时器小图标,如下图所示:
也分为中断和非中断的
XML内容
定时边界事件的 XML 内容是普通边界事件的声明,包含一个定时器事件子元素:
<process id="timerBoundaryEventProcess">
<userTask id="usertask1" name="审批"></userTask>
<boundaryEvent id="timerBoundaryEvent" name="Timer" attachedToRef="usertask1"
cancelActivity="false">
<timerEventDefinition>
<timeDuration>PT1M</timeDuration>
</timerEventDefinition>
</boundaryEvent>
</process>
定义定时器的标签是<timerEventDefinition>...</timerEventDefinition>
,它必须具有以下一个元
素:timeDate,timeDuration,timeCycle。
1. timeDate:设置在指定时间触发。
<startEvent id="timerStart">
<timerEventDefinition>
<timeDate>2023-07-14T12:12:14</timeDate>
</timerEventDefinition>
</startEvent>
timeDate 是使用 ISO 8601 格式指定一个确定的时间来触发事件,以上配置表示流程会在 2023-07-14T12:12:14 启动起来。
注意:ISO8601 时间格式,如果要加时间需要前面加 T。
2、timeDuration:置指定一个时间段之后执行。
timeDuration 是指定定时器之前要等待多长时间。S 表示秒,M 表示分,D 表示天;P 表示时
间段,T 表示精确到时间的时间段。
注意:时间格式依然为 ISO 8601 格式,一年两个月三天四小时五分六秒内,可以写成
P1Y2M3DT4H5M6S,P 是开始标记,T 是时间和日期分割标记,没有日期只有时间 T 是不能省去
的,比如 1 小时执行一次应该写成 PT1H。
3、通过 timeCycle 设置指定定时器的运行周期
timeCycle 指定重复执行的间隔,可以用来定期启动流程实例。timeCycle 的设置目前有两种方
式:ISO 8601 和 Cron 表达式。R 表示需要执行的次数,R2/PT1M 表示执行两次,每次间隔 1 分钟。
其中 endDate 是可选的配置,定时器将会在指定的时间停止工作。
注意:使用定时器开始事件需要启动 JobExecutor
使用示例
设计一个客户投诉处理的流程,收到客户投诉,先由一线客服人员处理,如果超过 2 个小时一
线客服仍然未能办结,就交由二线客服人员处理,此时可以为一线客服的流程任务加入定时边界事
件。
界面操作
总结
时间达到预设的时间标准之后触发事件。
注意:边界事件中断和非中断 默认是中断事件 设置了属性cancelActivity="false"的时候为非中断事件
1、中断事件是中断当前的活动沿着事件触发
2、非中断事件是不影响当前活动,并沿着事件触发
欢迎加入QQ群学习交流:582010059
视频地址:
定时器中断开始事件
定时器非中断开始事件
演示demo
定时器边界事件文章来源:https://www.toymoban.com/news/detail-547664.html
本文中内容和案例出自贺波老师的书《深入Activiti流程引擎:核心原理与高阶实战》,书中的介绍更全面、详细,推荐给大家。
深入Activiti流程引擎文章来源地址https://www.toymoban.com/news/detail-547664.html
到了这里,关于Flowable边界事件-定时边界事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!