项目使用的是SpringMVC, 以前就已经集成了 1.x 版本的 Quartz,有专门的配置文件定义了需要的bean。
一、配置文件示例如下:
xxxMenthod 0 0 07,12,15,23 * * ?
注意:schedulerFactory 只能定义一个,不然在工程启动的时候会报错。
二、实现程序对定时任务执行的控制
目前拟实现一个控制定时任务执行的服务类,供控制层调用,包括对运行中的Quartz中触发器的增、删和修改。
在这个服务类中,可以通过依赖注入注解拿到配置好的 SchedulerFactoryBean 和 触发器bean,例如:
@AutowiredSchedulerFactoryBean schedulerFactory;@AutowiredCronTriggerBean xxxTrigger;
拿到 SchedulerFactoryBean 的 bean 以后,就可以借此获得获得 Scheduler 对象 scheduler :
Scheduler scheduler = schedulerFactory.getScheduler();
通过 scheduler 可以取消和新增任务计划的触发器了:
try { scheduler.unscheduleJob("xxxTrigger", Scheduler.DEFAULT_GROUP);} catch (SchedulerException e) { e.printStackTrace();}
try { String newExpression = "5/1 * * * * ?"; xxxTrigger.setCronExpression(newExpression); scheduler.scheduleJob(xxxTrigger);} catch (SchedulerException e) { e.printStackTrace();} catch (ParseException e) { e.printStackTrace();}