我以这种方式动态安排工作:
JobClass.schedule(Long interval, Integer repeatCount, Map params )
稍后我想停止运行,然后根据用户操作再次重启它们。
我怎么能停止这个触发器?
实际阻止它的唯一方法是JobClass.removeJob()
,但我不能以后再启动它,所以我还需要别的东西。
谢谢!
答案 0 :(得分:6)
您可以使用具有方法unscheduleJob的Scheduler类,它只删除与作业绑定的所有触发器。对于调度程序类对象:
注入服务
def jobManagerService
使用代码取消预定作业
jobManagerService.getQuartzScheduler().unscheduleJob(TriggerKey triggerkey)
启动作业调度:只需为同一作业创建一个新触发器并安排它。
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(triggerName, triggerGroupName)
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds())
.forJob(JobKey.jobKey(jobName, groupName))
.build()
jobManagerService.getQuartzScheduler().scheduleJob(trigger);