quartz暂停任务恢复之后会把之前的任务重新执行
遇到的问题
最近在使用quartz做定时任务,在暂停quartz定时任务后,当你恢复这个任务的时候,它会一股脑的把你暂停之时起,到你恢复时,这期间错过的任务全部执行一遍,这可不是我想要的。
下面讲讲怎么样解决的
首先请耐心看完下面几个概念
1.失效阈值
概念
quartz配置中有一个属性叫做misfireThreshold,失效阈值的意思(单位毫秒)。
它默认是6000毫秒(6s),我们可以在application.properties中或者application.yml中进行手动修改,覆盖默认数值。比如我想改成5000(5s)
application.properties
org.quartz.jobStore.misfireThreshold = 50000
作用
假设有一个定时任务,计划是00:00:00始执行,40s执行一次,无限执行。
第一次执行时间,00:00:00 (正常执行完毕,没毛病)
00:00:15时,出问题了,比如机器宕机,或者你手动暂停了这个任务
第二次执行时间 ,12:00:40 (不会执行,因为机器宕机,或者暂停了任务ÿ