Quartz

219 阅读1分钟

任务调度框架

主要与三部分构成:Scheduler调度器,Trigger触发器,JobDetail任务详情

Trigger:触发器分为简单触发器和基于cron表达式的触发器,根据条件解析下一次的出发时间,同时可以设置错过执行(Misfire)的策略

JobDetail:维护任务的详情,执行类,使用的触发器等

Scheduler: 调度器,定时轮询获取可以触发的任务,分配线程去执行。

Misfire策略

导致Misfire的原因:
1)没有空闲线程
2)服务宕掉

1、MISFIRE_INSTRUCTION_SMART_POLICY 默认策略 等同于MISFIRE_INSTRUCTION_FIRE_NOW 立即执行一次

2、MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT 错过的忽略,等待下一次任务的执行

3、MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY 有空闲线程资源就去执行,直至恢复之前全部错过的misfire