如何在Camunda中实现用户任务超时后重复发送SMS提醒?
解决Camunda用户任务超时后重复SMS提醒的问题
核心实现思路
先通过非中断型边界定时事件触发3天的超时逻辑,再通过循环结构实现每小时重复发送SMS提醒,直到用户完成主任务。
具体建模步骤
- 配置主用户任务:创建目标用户任务(如
待处理用户任务),完成办理人、表单等基础配置。 - 添加3天超时的边界定时事件:给用户任务绑定非中断型边界定时事件,定时器时长设为
PT72H(Camunda支持ISO 8601格式,PT72H即72小时)。注意必须选非中断,否则用户任务会被强制终止,无法继续处理。 - 搭建循环提醒流程:
- 从边界定时事件引出序列流,连接到一个嵌入式子流程。
- 子流程内先添加
发送SMS提醒服务任务,实现短信发送的业务逻辑(调用接口或执行脚本)。 - 在服务任务后添加中间定时捕获事件,时长设为
PT1H(1小时)。 - 从定时事件引出序列流,回连到子流程的起始节点,形成循环。
- 设置循环终止条件:
在循环路径中添加排他网关,用表达式判断主用户任务是否已完成。比如:
当用户完成主任务时,设置${execution.getProcessInstance().getVariable('taskCompleted') == true}taskCompleted为true,循环会自动退出。
关键注意事项
- 确保Camunda的**作业执行器(Job Executor)**处于开启状态,定时事件的触发依赖该组件。
- 短信发送的服务任务要添加异常处理(如边界错误事件),避免发送失败导致循环阻塞。
内容的提问来源于stack exchange,提问作者WestFarmer
相关产品推荐
相关产品推荐

