当前位置: 主页 > JAVA语言

java时间触发事件-定时器事件定义中的流程启动流程(测试发布流程)

发布时间:2023-07-10 10:02   浏览次数:次   作者:佚名

文章目录

简介

版权声明:本文为CSDN博主「司马缸砸缸了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接

定时事件定义

定时器事件是根据指定的时间触发的事件。可以用于 开始事件,中间事件 或 边界事件。

java点击事件_java时间触发事件_事件触发程序

<timerEventDefinition>
    <timeDate>2011-03-11T12:13:14</timeDate>
</timerEventDefinition>

<timerEventDefinition>
    <timeDuration>P1D</timeDuration>
</timerEventDefinition>

<timerEventDefinition>
    <timeCycle>R3/PT10H</timeCycle>
</timerEventDefinition>

或者,你可以使用cron表达式指定timeCycle,下面的例子是从整点开始,每5分钟执行一次:

java点击事件_java时间触发事件_事件触发程序

0 0/5 * * * ?

也可以在定时器事件定义中使用表达式,这样你就可以通过流程变量来影响那个定时器定义。 流程定义必须包含ISO 8601(或cron)格式的字符串,以匹配对应的时间类型。

<boundaryEvent id="escalationTimer" cancelActivity="true" 	attachedToRef="firstLineSupport">
     <timerEventDefinition>
       <timeDuration>${duration}</timeDuration>
     </timerEventDefinition>
</boundaryEvent>

定时器边界事件

java点击事件_事件触发程序_java时间触发事件

定时边界事件就是一个暂停等待警告的时钟。当流程执行到绑定了边界事件的环节, 会启动一个定时器。定时器边界事件存在可中断与不可中断两类,可以为boundaryEvent元素设置cancelActivity属性,如果设置为true,那么原来的执行流将会被中断,设置为false,则原来的执行流仍然存在。定时器边界事件在一些限时场景比较合适,例如:一个任务先是由初级工程师处理,当初级工程师1分钟后还没处理完成,就交给高级工程师处理。

设计流程图

在这里插入图片描述

测试

java时间触发事件_事件触发程序_java点击事件

发布流程

在这里插入图片描述

启动流程(测试查询指定用户任务java时间触发事件java时间触发事件,睡眠一分钟后,再次查询任务)

在这里插入图片描述

事件触发程序_java时间触发事件_java点击事件

当超时之后,act_ru_timer_job表中的记录会消失

在这里插入图片描述

act_ru_task表中的初级工程师会消失,更换为高级工程师

在这里插入图片描述

具体流程细节如下

在这里插入图片描述

到这里定时边界事件测试完毕。