书接上回,上回说到,我们已经将页面的时间设置转为了Cron Expression,下面我记录了时间规则。
3) 记录时间规则
我将时间规则存入数据库中,目的是为了生成历史日志,也可以存入XML文件中。当然您也可以省略此步,直接将转换后的规则放入相应的Quartz trigger中。
4) 更新任务触发器的时间设置
到了关键的一步了,也是最简单的一步,一个方法就可以实现了。
首先,我们需要通过trigger的名称得到一个CronTriggerBean;
其次,通过trigger的setCronExpression(String cronExp)方法将新的表达式注入;
最后,RESCHEDULE THE JOB,OK!
1 /** */ /**
2 * 自定义定时器调度时间
3 * @param triggerName 触发器名称
4 * @throws Exception
5 */
6 public void updateNotificationInterval(String triggerName, String triggerId)
7 throws SchedulerException, ParseException {
8 // 得到trigger
9 CronTriggerBean trigger = (CronTriggerBean) scheduler.getTrigger(
10 triggerName, Scheduler.DEFAULT_GROUP);
11 // 得到cron expression
12 String cronExpression = schedulerDAO.getCronExpression(triggerId);
13 // 设置trigger的时间规则
14 trigger.setCronExpression(cronExpression);
15 // 重置job
16 scheduler.rescheduleJob(triggerName, Scheduler.DEFAULT_GROUP, trigger);
17 }
18