原文中文,约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查询实现。
-
监控漏调度的方法包括提高并发和评估性能。
🏷️