在groovy中手动设置石英作业的nextFireTime

时间:2015-06-01 17:38:52

标签: groovy quartz-scheduler

我想在石英作业上使用自己的错误处理。发生异常时,每个作业都有不同的等待时间。例如,作业每30秒运行一次,但是当发生异常时,作业应该等待5分钟。

我试过这种方法,但它不起作用:

{{1}}

这项工作再次在30秒内完成。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我可能错了,但您确定只需设置nextFireTime属性即可安排工作吗?

我想你必须使用http://quartz-scheduler.org/api/2.2.0/org/quartz/Scheduler.html#rescheduleJob(org.quartz.TriggerKey,org.quartz.Trigger)重新安排工作。

e.g。

SchedulerFactory sf = new StdSchedulerFactory()
Scheduler sched = sf.getScheduler()        
def name = "jobname"
Trigger trigger = sched.getTrigger(new TriggerKey("trigger_" + name))
trigger.repeatInterval = 30000
sched.rescheduleJob(trigger.name, trigger.group, trigger)

那将在5分钟内完成工作,然后你必须重新安排它在30秒内运行。