Snaker工作流 添加 提醒时间与提醒间隔(reminderTime、reminderRepeat)
来源:互联网 发布:js保存cookie 编辑:程序博客网 时间:2024/06/05 15:35
项目中有集成snaker工作流,现在用户有需求,希望给每个环节设定一个 任务超时未办理的提醒 功能。一番研究,实现起来还是比较简单的:
1、依赖
snaker
默认支持quartz定时器调度框架,只需要依赖snaker-quartz的包即可。
2、配置
在snaker.xml
中配置时限控制的拦截器、定时调度的实现类
<bean class="org.snaker.engine.impl.SchedulerInterceptor"/>
<bean class="org.snaker.engine.scheduling.quartz.QuartzScheduler"/>
如果使用其它定时调度框架,需要实现IScheduler
接口,并替换QuartzScheduler
类配置
以上两步已经完成了时限的配置工作,下面就可以针对提醒、超时自动执行做自定义扩展了。
3、实现
编写自定义的提醒类,实现IReminder
接口。并配置到snaker.xml
中即可。
<bean class="net.jqsoft.hecv.flow.service.impl.SnakerReminder" />
SnakerReminder:
import net.jqsoft.hecv.portal.CommonApiAction;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.snaker.engine.entity.Process;import org.snaker.engine.model.NodeModel;import org.snaker.engine.scheduling.IReminder;import org.zcframework.workflow.reminder.MailReminder;import java.util.Map;public class SnakerReminder implements IReminder { private static Log logger = LogFactory.getLog(SnakerReminder.class); public void remind(Process process, String orderId, String taskId, NodeModel nodeModel, Map<String, Object> data) { logger.info("orderId:"+orderId); logger.info("taskId:"+taskId); logger.info("process:"+process.getDisplayName()); logger.info("nodeModel:"+nodeModel.getDisplayName()); for(String key:data.keySet()){ logger.info(key+":"+data.get(key)); } }}
4、回调类
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.snaker.engine.entity.Task;import org.snaker.engine.scheduling.JobCallback;import java.util.List;/** * Created by Administrator on 2017-4-20. */public class SnakerJobCallback implements JobCallback { private static Log logger = LogFactory.getLog(SnakerReminder.class); @Override public void callback(String s, List<Task> list) { logger.info("s:"+s); }}
回调类的路径要配置在 工作流中!!!
5、其他
reminderTime
是一个变量,表示提醒开始时间,当你调用
api
时需要传递此变量值,值的类型为
date
。
reminderRepeat
是一个数字,表示重复提醒间隔时间,以分钟为单位
默认提醒一次就结束,如果希望提醒多次,可通过snaker.properties
中配置scheduler.repeat
属性,该值是个数字,表示提醒次数。
节假日配置(snaker.properties):
#
是否启用节假日,默认为
false
scheduler.useCalendar=true/false
#
节日配置,格式为
yyyy-MM-dd,...
scheduler.holidays=2014-12-26,2014-12-27
#
工作日设置,格式为
1,2,3...7
,表示周一至周日
scheduler.weeks=1,2,3,4,5
#
工作时间设置,格式为
8:00-18:00
scheduler.workTime=8:00-18:00
0 0
- Snaker工作流 添加 提醒时间与提醒间隔(reminderTime、reminderRepeat)
- 本地添加及取消日期时间提醒
- 提醒
- 提醒
- 提醒
- 提醒
- 提醒
- 提醒
- SNAKER 工作流
- MOSS工作流开发+Email提醒
- MOSS工作流开发+ Email提醒
- db2表中根据某一个时间和时间间隔进行提醒
- 如何添加一个提醒
- ExtJS4 添加行提醒
- 添加本地消息提醒
- java 时间提醒
- 时间提醒 VBS
- Java时间到达提醒
- android中计算多边形的面积
- TLD C++版代码
- 数据结构之线性表(C语言版)
- eclipse+tomcat调试修改代码不用重启容器配置方法
- SQLServer AlwaysOn AG 连接侦听器IP地址很慢
- Snaker工作流 添加 提醒时间与提醒间隔(reminderTime、reminderRepeat)
- JedisPool.returnResource()遭弃用
- Problem C: 默认参数:求圆面积
- 初识Makefile
- [python]在ubuntu下使用matplotlib绘图---问题
- 《PCL点云库学习&VS2010(X64)》Part 31 pcl::PointCloud::Ptr和pcl::PointCloud相互转换
- Windows bat脚本for循环之二
- 最严格的Java代码身份验证
- POJ 3087 Shuffle'm Up(模拟)