activiti 流程超时自动发送邮件

来源:互联网 发布:windows sudo rm -rf 编辑:程序博客网 时间:2024/04/30 09:48
  介于当前activiti现状,并没有比较完整的各种事件功能demo,作为一个初学者,我记录下学习与开发中遇到的点点滴滴,希望能够帮助到更多的初学者。  由于是在项目进行中才来进行记录,所以内容可能有点混乱,并不是一个完整的新手教程,  所以新手教程还需要各位初学者查找其他资料进行学习,基本资料网上很多,我就不发布链接了,自己去百度更快一些。  下面,我把之前实现的流程超时自动发送邮件的过程列举出来。  在基础应用中,activiti的边界定时器能够给我们提供很好的任务超时实现,只需要在特定流程节点加上定时器,然后将定时器绑定上一个邮件事件。  在流程启动并流转到该节点之前,将时间作为流程变量绑定到该流程。一旦流程流转到了该节点。  activiti就会根据变量获取到的时间进行计算,到了时间结束的时候就执行定时器连接的邮件任务。  首先是activit配置文件修改bean内容:
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
  1、要使用定时器,必须打开job
<property name="jobExecutorActivate" value="true" />
 2、要使用邮件任务,必须指定邮件发送服务器,每一个标签的定义请去官方API或者mossle.com进行查看
<!-- 邮件 -->              <property name="mailServerHost" value="${host}" />              <property name="mailServerPort" value="${port}"/>              <property name="mailServerDefaultFrom" value="${sendUserName}" />              <property name="mailServerUsername" value="${uname}" />              <property name="mailServerPassword" value="${password}" />              <property name="mailServerUseSSL" value="false" />
3、画流程图,指定某个节点启动边界定时器,并且在定时器后添加一个邮件任务。边界定时器分为2种,一种为定时器启动流程终止,一种为定时器启动流程继续流转。邮件的内容可以通过el表达式进行设置,el表达式需要获取的信息必须预先存于流程变量中,不然无法自动获取。![图片上传无法显示,用链接看吧](http://img.blog.csdn.net/20160409140307487)4、变量存储方式有多种,请参考API,我这里为了方便测试,将时间设置为10秒后执行,实际开发中时间应该是从业务数据中获取的变量
variables.put("timeout", "PT10S");variables.put("name", formEntity.getNow_step_user());

以上4个步骤结束后,启动流程,流程流转到第一个环节,定时器执行,时间到自动发送邮件。当然,如果流程已经结束,就啥也没了。

2 0
原创粉丝点击