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

Posted 大地上的乌龟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于Quartz在服务异常中断或者重启后,不执行之前漏掉的任务,重新运行下一次任务的主要内容,如果未能解决你的问题,请参考以下文章

一文揭秘定时任务调度框架quartz

中断,异常,系统调用

浪潮服务器,断电后重启不能正常启动

Quartz持久化到数据库后,执行任务之前或之后,任务状态变为ERROR的解决奇招

Centos7 重启后网络异常修复

Supervisor的作用与配置:实现对异常中断的子进程的自动重启