时限控制常用于流程平台中的超时处理(提醒、自动执行等)、以及任务监控的查询统计等功能。
依赖包配置实现提醒接口snaker默认支持quartz定时器调度框架,只需要依赖snaker-quartz的包即可。
在snaker.xml中配置时限控制的拦截器、定时调度的实现类
<bean class="org.snaker.engine.impl.SchedulerInterceptor"/>
<bean class="org.snaker.engine.scheduling.quartz.QuartzScheduler"/>
如果使用其它定时调度框架,需要实现IScheduler接口,并替换QuartzScheduler类配置
以上两步已经完成了时限的配置工作,下面就可以针对提醒、超时自动执行做自定义扩展了。
编写自定义的提醒类,实现IReminder接口。并配置到snaker.xml中即可。
任务节点配置超时提醒属性:reminderTime、reminderRepeat。
reminderTime是一个变量,表示提醒开始时间,当你调用api时需要传递此变量值,值的类型为date。
reminderRepeat是一个数字,表示重复提醒间隔时间,以分钟为单位
snaker.properties中配置scheduler.repeat属性,该值是个数字,表示提醒次数。#是否启用节假日,默认为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
expireTime、autoExecute、callbackexpireTime是一个变量,表示期望完成时间,当你调用api时需要传递此变量值,值的类型为date。
autoExecute的值为Y/N,表示超时是否自动执行
callback是一个字符串,表示自动执行的回调类路径配置
通过实现JobCallback接口
org.snaker.engine.scheduling.JobCallback