Quartz是一个开源的Java作业调度框架,它提供了强大的定时任务调度功能。在DolphinScheduler中,Quartz用于实现定时任务的调度和管理。DolphinScheduler通过QuartzExecutorImpl类与Quartz集成,将工作流及其定时管理操作与Quartz调度框架相结合,实现任务的调度执行。
本文将详细剖析Quartz的原理机制,以及在Dolphinscheduler中使用Quartz的原理。
Quartz ER图
QRTZ_JOB_DETAILS
和QRTZ_TRIGGERS
是中心表,定义了任务与触发器之间的关系;QRTZ_TRIGGERS
表通过外键关联了多个触发器类型表,如QRTZ_SIMPLE_TRIGGERS
和QRTZ_CRON_TRIGGERS
,用于实现不同类型的触发方式;QRTZ_FIRED_TRIGGERS
用于记录每次任务执行的历史,与任务和触发器表都有关联;QRTZ_CALENDARS
用于定义触发器的日历排除规则,QRTZ_PAUSED_TRIGGER_GRPS 用于管理触发器组的暂停状态;QRTZ_SCHEDULER_STATE
和QRTZ_LOCKS
主要用于集群环境中的任务调度协调,确保高可用性。
Dolphinscheduler Quartz使用
新建SHELL任务
流程定义上线并配置调度