Quartz的misfire
来源:互联网 发布:淘宝售后服务有哪些 编辑:程序博客网 时间:2024/05/16 11:49
针对SimpleTrigger,有多种misfire策略,网上一搜一大堆,但是都含糊不清,没说清楚具体差别,如下是我的理解:
智能根据trigger属性选择策略:
repeatCount为0,则策略同MISFIRE_INSTRUCTION_FIRE_NOW
repeatCount为REPEAT_INDEFINITELY,则策略同MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT
否则策略同MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT
MISFIRE_INSTRUCTION_FIRE_NOW
以当前时间为触发频率立即触发执行
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT
以当前时间为触发频率立即触发执行
以总次数-已执行次数作为剩余周期次数,重新计算FinalTime
调整后的FinalTime会略大于根据starttime计算的到的FinalTime值
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT
以当前时间为触发频率立即触发执行
保持FinalTime不变,重新计算剩余周期次数(相当于错过的当做已执行)
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT
不触发立即执行
等待下次触发频率周期时刻执行
以总次数-已执行次数作为剩余周期次数,重新计算FinalTime
调整后的FinalTime会略大于根据starttime计算的到的FinalTime值
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT
不触发立即执行
等待下次触发频率周期时刻,执行至FinalTime的剩余周期次数
保持FinalTime不变,重新计算剩余周期次数(相当于错过的当做已执行)
总结一下:
1、带有_NOW字样的策略,就是立即执行;反之,带有_NEXT的策略,则会等到下一个触发周期才会执行。
2、带有WITH_EXISTING_REPEAT_COUNT字样的,则是确保周期总数不变,用周期总数-已执行数作为剩余周期数,因此FinalTime会适当延后;
例如,repeatCount为3次(总计4次),已执行1次,错过2次,则后续仍会执行4-1=3次。
3、带有WITH_REMAINING_COUNT则是按原定计划执行,FinalTime不变,已错过的忽略。
例如,repeatCount为3次(总计4次),已执行1次,错过2次,则后续会执行4-1-2=1次。
0 0
- Quartz的misfire特性
- Quartz的misfire
- Quartz的Misfire机制
- Quartz的misfire理解
- Quartz的misfire特性
- Quartz的misfire特性
- Quartz的Misfire处理规则
- Quartz的Misfire处理规则
- Quartz的Misfire处理规则
- Quartz的misfire策略学习
- quartz设置misfire策略
- Quartz misfire详解
- Quartz源码——Quartz调度器的Misfire处理规则(四)
- Quartz的Misfire处理规则 错过任务执行时间的处理机制
- Quartz定时器中的misfire指定解析
- 【Quartz】Quartz的搭建、应用(单独使用Quartz)
- Quartz的监控和管理工具:quartz-monitor
- quartz--深入解读Quartz的原理
- 经验总结
- 全世界最短的IE判断(转载)
- NSdata 与 NSString,Byte数组,UIImage 的相互转换---ios开发 Objective-C
- Android系统SVC命令教程
- 同步函数与异步函数的讲解
- Quartz的misfire
- android 获取手机支持的locale信息
- Buffer对象与数值对象之间的相互转换
- Python字符串格式化
- java web 交流群 里面好多资源
- 无线APP开发过程中的省电原则
- 好烦啊 ds dt dr
- linux 相关
- Java中的迭代器Iterator和for-each循环