quartz暂停任务恢复之后会把之前的任务重新执行

在quartz中,暂停任务后恢复会导致错过的任务全部执行。misfireThreshold属性用于设定失效阈值,超过该阈值会执行超时策略。超时策略分为SimpleTrigger和CronTrigger两种,包括立即执行和不立即执行的情况。如何避免不必要的任务执行和正确设置处理策略是关键。
摘要由CSDN通过智能技术生成

遇到的问题

最近在使用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 (不会执行,因为机器宕机,或者暂停了任务ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值