DolphinScheduler流程详解
2021-08-27 14:36:40 24 举报
DolphinScheduler流程详解
作者其他创作
大纲/内容
NettyExecutorManager
ProcessScheduleJob
run
crontab
addJob
ProcessDefinition
poll
execute
submitPostNode
根据Id查询Schedule
TaskResponseProcessor
SchedulerController
从请求中序列化得出TaskExecuteRequestCommand
构建ExecutionContext的时候拿出流程定义中的datax字段进行构建
locations
定时运行查询出Schedule
存储日志、更新状态
submit
projectName
insertSchedule
TaskExecuteThread
prepareProcess
SchedulerService
构建datax任务的json文件
WorkerServer启动,监听Netty请求
DataxTask
①
MasterExecThread
dispatch
buildFlowDag
MasterServe启动r
ProcessDefinitionController
runProcess
前置检查
⑤
TaskManager.newTask
setScheduleState
process
⑥任务线程处理任务到队列
构建ExecutionContext
第一步创建的任务JSON保持一致,替换里面的datax相关的字段
③
name
从Context中得到执行参数
保存成Schedule
⑩执行结果实时返回到Master进行更新
handle
processDefinitionId
createProcessDefinition
TaskExecuteProcessor
MasterSchedulerService
前端启动定时任务
ProcessDefinitionService
构建Command
⑨构建任务进行执行
submitTaskExec
根据ExecutionContext的内容构建datax文件
启动一个ProcessScheduleJob的任务实例
online
④Quartz的任务定时运行触发任务执行
startTime
MasterTaskExecThread
从Command中得到TaskExecutionContext
调用Quartz接口创建定时任务
executeProcess
init
QuartzExecutors
前端创建定时任务
提交到TaskPriorityQueue队列
创建Command保存
connects
DataxTask(TaskExecutionContext).handle
②
timezoneId
ExecutorDispatcher
创建一个ProcessInstance并启动一个MasterExecThread
endProcess
Worker选择
endTime
scheduleProcess
⑦分发任务到Worker
保存成ProcessDefinition
执行任务
createSchedule
发送执行请求到Worker
TaskPriorityQueueConsumer
查询出一个Command
scheduleId
⑧
json
前端创建任务定义
接收任务执行结果
0 条评论
下一页