💡
原文中文,约2500字,阅读约需6分钟。
📝
内容提要
DolphinScheduler的启动流程主要包括:生成工作流实例、触发工作流实例、提交工作流实例、分发任务实例,其中构造DAG、提交任务到优先级队列、节点的选择和负载均衡等都是在这一步完成的。
🎯
关键要点
-
任务调度系统的启动入口包括系统调度和手动运行。
-
DolphinScheduler的启动流程包括生成工作流实例、触发工作流实例、提交工作流实例和分发任务实例。
-
生成工作流实例的过程涉及从t_ds_command表读取数据并写入t_ds_process_instance表。
-
MasterSchedulerBootStrap和masterPrepareExecService负责处理工作流实例的生成。
-
WorkflowExecuteRunnable类封装了构造DAG和任务提交等功能。
-
触发工作流实例的过程是通过WorkflowEventQueue和MasterSchedulerBootstrap实现的。
-
提交工作流实例时,DAG的构造和TaskInstance对象的生成在WorkflowExecuteRunnable::call方法中完成。
-
DAG的构建涉及读取ProcessInstance下的所有Task实现及其依赖关系。
-
任务的历史记录保存在对应的_log表中,以便于查询。
-
任务提交到优先级队列中,首先提交的是DAG的开始节点。
-
分发任务实例的过程是单线程的,从优先级队列中选择任务并发送到Worker节点。
🏷️
标签
➡️