java 调度器,精进Quartz源码—Quartz调度器的Misfire处理规则(四)

一、SimpleTrigger的misfire机制 默认的 Trigger.MISFIRE_INSTRUCTION_SMART_POLICY !!!

trig.updateAfterMisfire(cal);

getMisfireInstruction() ----> misfireInstruction == 0

——以当前时间为触发频率立即触发执行

SimpleScheduleBuilder ssb = SimpleScheduleBuilder.simpleSchedule();

ssb.withMisfireHandlingInstructionFireNow();//1

ssb.withMisfireHandlingInstructionIgnoreMisfires();//2

ssb.withMisfireHandlingInstructionNextWithExistingCount();//3

ssb.withMisfireHandlingInstructionNextWithRemainingCount();//4

ssb.withMisfireHandlingInstructionNowWithExistingCount();//5

ssb.withMisfireHandlingInstructionNowWithRemainingCount();//6

//1

withMisfireHandlingInstructionFireNow ---> misfireInstruction == 1

——以当前时间为触发频率立即触发执行

——执行至FinalTIme的剩余周期次数

——以调度或恢复调度的时刻为基准的周期频率,FinalTime根据剩余次数和当前时间计算得到

——调整后的FinalTime会略大于根据starttime计算的到的FinalTime值

//2

withMisfireHandlingInstructionIgnoreMisfires ---> misfireInstruction == -1

—以错过的第一个频率时间立刻开始执行

——重做错过的所有频率周期

——当下一次触发频率发生时间大于当前时间以后,按照Interval的依次执行剩下的频率

——共执行RepeatCount+1次

//3

withMisfireHandlingInstructionNextWithExistingCount ---> misfireInstruction == 5

——不触发立即执行

——等待下次触发频率周期时刻,执行至FinalTime的剩余周期次数

——以startTime为基准计算周期频率,并得到FinalTime

——即使中间出现pause,resume以后保持FinalTime时间不变

//4

withMisfireHandlingInstructionNextWithRemainingCount ---> misfireInstruction = 4

——不触发立即执行

——等待下次触发频率周期时刻,执行至FinalTime的剩余周期次数

——以startTime为基准计算周期频率,并得到FinalTime

——即使中间出现pause,resume以后保持FinalTime时间不变

//5

withMisfireHandlingInstructionNowWithExistingCount ---> misfireInstruction = 2

——以当前时间为触发频率立即触发执行

——执行至FinalTIme的剩余周期次数

——以调度或恢复调度的时刻为基准的周期频率,FinalTime根据剩余次数和当前时间计算得到

——调整后的FinalTime会略大于根据starttime计算的到的FinalTime值

//6

withMisfireHandlingInstructionNowWithRemainingCount --- >misfireInstruction = 3

——以当前时间为触发频率立即触发执行

——执行至FinalTIme的剩余周期次数

——以调度或恢复调度的时刻为基准的周期频率,FinalTime根据剩余次数和当前时间计算得到

——调整后的FinalTime会略大于根据starttime计算的到的FinalTime值

MISFIRE_INSTRU

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值