最近业务项目需要新增【审批超时邮件提醒】的功能,具体意思就是在用户任务长时间未被审批时,就定期发邮件提醒。初步想到的解决办法是结合以下技术完成:
采用边界时间事件定时触发TIME_FIRED事件;全局ActivitiEventListener事件监听器监听TIME_FIRED事件;JavaMailSenderImpl写邮件发送;下面就跟随小白具体实现吧!首先了解一下ISO8601时间格式语法;
格式:【重复次数/开始时间/间隔时间/结束日期】,由四部分组成;
R[次数]:表示具体重复多数次,当忽略[次数]时,代表无限次重复;
使用T来分隔日期和时间,例如2020-09-06 T 13:23:12;
以P开头,用T来分隔日期和时间;例如:P1DT2H表示间隔1天零2小时;
1Y:1年1M:1月1D:1天T3H:3小时T3M:3分钟T3S:3秒使用T来分隔日期和时间,例如2020-09-08 T 13:23:01;
一个基本例子:R2/2020-03-05 T 08:04:00/PT5M,表示从2020-03-05 T 08:04:00开始,每5分钟触发一次,总共间隔触发2次;
上图的边界时间事件只要用户任务节点没有被执行,那么边界时间事件就会每间隔一天触发一次,从而达到超时提醒的效果;