Grails - 停止或重新安排工作

时间:2013-12-04 08:26:44

标签: grails quartz-scheduler

我以这种方式动态安排工作:

JobClass.schedule(Long interval, Integer repeatCount, Map params )

稍后我想停止运行,然后根据用户操作再次重启它们。

我怎么能停止这个触发器?

实际阻止它的唯一方法是JobClass.removeJob(),但我不能以后再启动它,所以我还需要别的东西。

谢谢!

1 个答案:

答案 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);