Grails - 停止或重新安排工作

Dvo*_*ora 3 grails quartz-scheduler

我以这种方式动态调度作业:

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

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

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

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

谢谢!

Ak *_*oel 6

您可以使用具有方法unscheduleJob的Scheduler类,它只删除与作业绑定的所有触发器.对于调度程序类对象:

注入服务

def jobManagerService 
Run Code Online (Sandbox Code Playgroud)

使用代码取消安排工作

jobManagerService.getQuartzScheduler().unscheduleJob(TriggerKey triggerkey)
Run Code Online (Sandbox Code Playgroud)

启动作业调度:只需为同一作业创建一个新触发器并安排它.

Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity(triggerName, triggerGroupName)
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                .withIntervalInSeconds())
                .forJob(JobKey.jobKey(jobName, groupName))
                .build()

        jobManagerService.getQuartzScheduler().scheduleJob(trigger);
Run Code Online (Sandbox Code Playgroud)