Activti流程框架_项目实战07超时邮件提醒01

  最近业务项目需要新增【审批超时邮件提醒】的功能,具体意思就是在用户任务长时间未被审批时,就定期发邮件提醒。初步想到的解决办法是结合以下技术完成:

  • 采用边界时间事件定时触发TIME_FIRED事件;
  • 全局ActivitiEventListener事件监听器监听TIME_FIRED事件;
  • JavaMailSenderImpl写邮件发送;

  下面就跟随小白具体实现吧!首先了解一下ISO8601时间格式语法;

1、ISO8601时间格式语法

格式:【重复次数/开始时间/间隔时间/结束日期】,由四部分组成;

1.1 重复次数

  R[次数]:表示具体重复多数次,当忽略[次数]时,代表无限次重复;

1.2 开始时间

使用T来分隔日期和时间,例如2020-09-06 T 13:23:12;

1.3 间隔时间

  以P开头,用T来分隔日期和时间;例如:P1DT2H表示间隔1天零2小时;

  • 1Y:1年
  • 1M:1月
  • 1D:1天
  • T3H:3小时
  • T3M:3分钟
  • T3S:3秒
1.4 结束日期

  使用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次;

2、边界时间事件
2.1 配置application.properties文件
##激活作业执行器,否则定时器将不起作用
spring.activiti.async-executor-activate=true
spring.activiti.job-executor-activate=true

2.2 边界时间事件流程模型XML表达
<boundaryEvent id="boundarytimer2" name="超时提醒" attachedToRef="XXX" cancelActivity="false">
      <timerEventDefinition>
      <!--
      	  1、timeDuration、timeDate、timeCycle三种
      	  2、<timeXXX>重复次数/开始时间/间隔时间</timeXXX>
      	  3、R/P1D:表示每间隔1天执行一次	
      -->
      <timeCycle>R/P1D</timeCycle>
      </timerEventDefinition>
</boundaryEvent>

在这里插入图片描述

  上图的边界时间事件只要用户任务节点没有被执行,那么边界时间事件就会每间隔一天触发一次,从而达到超时提醒的效果;

2.2 Cancel activiti的作用
  1. False:表示当触发边界时间事件时,不终止主线路上被依附的节点任务,顺带执行边界分支;
  2. True: 表示触发边界时间事件时,终止主线路上被依附的节点任务,顺带执行边界分支;
    更多有关activiti的项目开发内容请等下次更新,欢迎点评,共同进步哦!
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值