Quartz的Misfire机制
2016-05-09 16:04
204 查看
Quartz是一个常用的Java定时任务类库,其稳定性达到了工业级别,本文主要阐明其Misfire机制
Quartz的Misfire机制由以下两项决定misfireThreshold 参数
trigger的misfire 策略
接下来详细阐明:
当系统由于某种原因(未启动或是没有可用线程)在预定时刻没有启动任务,之后当系统可以调度该任务时(系统启动或是取得了可用线程),会首先检查当前时刻与预定时刻的差值,如果小于等于misfireThreshold值(该参数缺省为60秒),则不认为发生Misfire,并立刻启动该任务,一切正常进行。
如果大于misfireThreshold值,则认为发生了misfire,此时的行为由trigger的Misfire Instructions来决定。而不同类型的trigger的缺省Misfire Instructions是不同的,具体可以查看trigger的updateAfterMisfire()函数。
对于典型的trigger:
SimpleTrigger 缺省Misfire指令MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT(立即启动,丢失多少次,启动多少次)
CronTrigger 缺省Misfire指令MISFIRE_INSTRUCTION_FIRE_NOW(立即启动,不管丢失多少次,只启动一次)
相关文章推荐
- Linux的inode、软链接、硬链接
- 异常收集
- JAVA中重写equals()方法为什么要重写hashcode()方法?
- Spring中depends-on的作用是什么?
- Redmine后台修改admin密码
- GeoHash补充
- 聚集索引和二级索引
- 你的凭据不工作,请输入新凭据----远程电脑出现的问题
- MFC中如何画带实心箭头的直线
- 文章标题
- Android仿斗鱼领取鱼丸文字验证(一)
- EJB 有状态的对象和无状态的对象
- hadoop之FileSystem操作
- ssh 'diffie-hellman-group1-sha1' 问题解决方法
- Linux下OCI环境配置
- usr/include/dispatch - dispatch_source
- win7 安装 MySQL 5.7 配置方法
- redis 下载安装
- Oracle SCN详解
- iOS开发中一些常用的方法