DolphinScheduler笔记之10: quartz

DolphinScheduler笔记之10: quartz

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

继续阅读