我有一些使用SimpleScheduleBuilder.repeatMinutelyForever(60)
的重复石英作业。让我们说这项工作最初安排在上午10:02,并在上午10:07完成5分钟。
现在它已经安排在上午11点02分重新开始运行,但我希望它在完成后60分钟再次运行,所以它应该安排在上午11点07分。
有没有办法改变调度来做到这一点?或者我应该使用一次性工作,每次完成时创建一个新工作?
答案 0 :(得分:0)
使用TriggerListener
- 有关Quartz cookbook中的一些示例,请参阅here。
您将覆盖triggerComplete
,然后您将添加重新安排的代码:
public void triggerComplete(Trigger trigger, JobExecutionContext context, CompletedExecutionInstruction triggerInstructionCode) {
// check here the triggerInstructionCode value and reschedule your job
super.triggerComplete(trigger, context, triggerInstructionCode);
}
使用调度程序注册TriggerListener以侦听特定触发器的示例:
scheduler.getListenerManager().addTriggerListener(myTriggerListener, keyEquals(triggerKey("myTriggerName", "myTriggerGroup")));
另见this answer。