💡
原文中文,约12100字,阅读约需29分钟。
📝
内容提要
本文介绍了Quartz调度框架的基本概念和使用方法,以及持久化和分布式的实现。还讨论了misfire问题的解决方案和监控方法。
🎯
关键要点
- Quartz是一个调度框架,支持持久化和分布式。
- Quartz的三个重要概念:JobDetail、Trigger和Scheduler。
- 持久化配置可以使用RAMJobStore或JobStoreTX,后者支持将作业和触发器持久化到数据库。
- 常见的触发器状态包括WAITING、PAUSED、ACQUIRED和BLOCKED。
- DolphinScheduler中QuartzExecutorImpl负责定时管理,addJob方法用于更新工作流及其定时管理。
- ProcessScheduleJob类继承自QuartzJobBean,重载executeInternal方法以执行具体任务。
- misfire是指任务未能在预定时间触发,Quartz提供了多种misfire策略。
- DolphinScheduler默认使用CronScheduleBuilder.withMisfireHandlingInstructionDoNothing策略。
- 漏调度的情况会在日志中记录,需重视并监控。
- recoverMisfiredJobs方法用于检测漏调度的任务,并通过SQL查询实现。
- 监控漏调度的方法包括提高并发和评估性能。
➡️