定时器事件是由设定的定时器触发的事件,可作为开始事件、中间事件或边界事件使用。其行为受所用业务日历的影响。每个定时器事件都有默认业务日历,但也允许在事件定义中指定其他业务日历。
1、 本项目基于SpringBoot2与Activity6开发,以下是我撰写的整合教程链接,有兴趣的读者可点击查看。
2、 SpringBoot项目(六):版本不兼容,重新整合Activity模块功能。
3、 定时器的标签定义为 `...`,那么如何使用这个标签?在 `timerEventDefinition` 中,存在一个名为 `businessCalendarName` 的属性,该属性用于指向流程引擎配置中业务日历的具体位置。如果需要使用默认的业务日历,按照官方文档的说明,可以这样定义:`...`。
4、 具体来说,`businessCalendarName` 属性的作用是帮助流程引擎识别所使用的日历类型,从而准确计算时间触发条件。当设置为 custom 时,表示引用自定义的日历规则;而若未明确指定,则通常会采用系统默认的日历配置。通过合理配置该属性,可以灵活满足不同业务场景下的定时需求。例如,在某些特定行业或企业中,可能需要排除节假日或非工作时间,此时就需要借助业务日历来调整定时器的行为。
5、 定时器应具备以下某一要素:
6、 timeDate表示触发器的触发时间,例如:
7、 这里的时间格式为ISO 8601固定标准,请留意。
8、 timeDuration表示定时器在多久之后触发,例如:
9、 时间格式采用ISO 8601,例如一年两个月三天四小时五分六秒表示为P1Y2M3DT4H5M6S。其中P为起始标记,T分隔日期与时间。仅有时间时,T不可省略,如每1小时执行一次应写为PT1H。
10、 timeCycle表示触发器的重复间隔时间,其标签中的endDate为可选属性,用于设定重复触发失效的截止时间。例如:
11、 或者
12、 结束日期\${EndDate}是一个变量。
13、 时间格式采用固定的ISO 8601标准,同时支持另一种cron表达式的时间格式。其中,R表示无限重复,R1表示仅重复一次,R231表示重复231次,而R3/PT10H则表示总共重复3次,每次间隔4小时。
14、 首先创建一个BPMN流程文件,具体内容如下:

15、 验证信息如下:
16、 下图显示,预测结果一致:定时未触发时无当前任务,触发后则有任务。
