Quartz在服务异常中断或者重启后,不执行之前漏掉的任务,重新运行下一次任务

Quartz默认重启后会执行之前的任务,所以如果不想执行之前漏掉的任务,需要设置一下两个地方:

CRON triggers

CronTrigger trigger = TriggerBuilder.newTrigger()
					.withIdentity(name, TRIGGER_GROUP)
					.withSchedule(
							CronScheduleBuilder.cronSchedule(time)
									.withMisfireHandlingInstructionDoNothing())
					.build();// 触发器名,触发器组,触发器时间设定	

  

withMisfireHandlingInstructionDoNothing(所有的misfire不管,执行下一个周期的任务)

在quartz.properties配置文件中添加:

#这个时间大于10000(10秒)会导致MISFIRE_INSTRUCTION_DO_NOTHING不起作用。

org.quartz.jobStore.misfireThreshold = 1000

原文地址:https://www.cnblogs.com/bate/p/7569330.html