DolphinScheduler 任务状态类型流程
【摘要】 以下是 DolphinScheduler 2.0 任务状态类型的流程图,展示了任务从提交到最终状态的完整生命周期:flowchart TD Start(任务开始) --> Submitted[SUBMITTED_SUCCESS<br>提交成功] Submitted --> Running[RUNNING_EXECUTION<br>运行中] Running -...
以下是 DolphinScheduler 2.0 任务状态类型的流程图,展示了任务从提交到最终状态的完整生命周期:
flowchart TD
Start(任务开始) --> Submitted[SUBMITTED_SUCCESS<br>提交成功]
Submitted --> Running[RUNNING_EXECUTION<br>运行中]
Running --> WaitThread[WAITING_THREAD<br>等待资源]
WaitThread --> Running
Running --> WaitDepend[WAITING_DEPEND<br>等待依赖]
WaitDepend --> Running
Running --> Delay[DELAY_EXECUTION<br>延迟执行]
Delay --> Running
Running -->|用户操作| ReadyPause[READY_PAUSE<br>准备暂停]
ReadyPause --> Pause[PAUSE<br>已暂停]
Pause -->|恢复| Running
Running -->|用户操作| ReadyStop[READY_STOP<br>准备停止]
ReadyStop --> Stop[STOP<br>已停止]
Running -->|执行失败| Failure[FAILURE<br>执行失败]
Failure --> FaultTolerance[NEED_FAULT_TOLERANCE<br>需要容错]
FaultTolerance -->|重试| Running
Running -->|执行成功| Success[SUCCESS<br>执行成功]
Running -->|强制操作| ForcedSuccess[FORCED_SUCCESS<br>强制成功]
Running -->|强制终止| Kill[KILL<br>已杀死]
Stop --> End(任务结束)
Success --> End
Failure --> End
ForcedSuccess --> End
Kill --> End
状态转换说明:
- 初始状态:
-
SUBMITTED_SUCCESS
:任务提交成功,进入执行队列
- 执行中状态:
-
RUNNING_EXECUTION
:核心执行状态 - 等待状态:
WAITING_THREAD
(等待资源)、WAITING_DEPEND
(等待依赖) -
DELAY_EXECUTION
:延迟执行,后会返回运行状态
- 用户干预状态:
- 暂停流程:
READY_PAUSE
→PAUSE
→(可恢复)→RUNNING_EXECUTION
- 停止流程:
READY_STOP
→STOP
→ 结束
- 最终状态:
- 成功:
SUCCESS
(正常成功)、FORCED_SUCCESS
(强制成功) - 失败:
FAILURE
→ 可能触发NEED_FAULT_TOLERANCE
(容错重试) - 终止:
KILL
(强制杀死)、STOP
(用户停止)
关键特点:
- 环形流程:失败后可容错重试,形成执行循环
- 双向转换:暂停状态可恢复继续执行
- 多终态:任务有5种结束方式(成功、强制成功、失败、停止、杀死)
- 人工干预:用户可随时暂停、停止或强制成功任务
这个流程图清晰地展示了 DolphinScheduler 任务状态的完整生命周期和转换关系。
实例场景
某公司每天需要执行一个数据清洗工作流,包含以下任务:
- 数据提取:从源数据库提取数据
- 数据清洗:清洗和转换数据
- 数据加载:将清洗后的数据加载到数据仓库
任务状态流转示例
flowchart TD
Start(数据清洗工作流开始) --> Submitted[SUBMITTED_SUCCESS<br>工作流提交成功]
Submitted --> Running[RUNNING_EXECUTION<br>开始执行]
Running --> Task1[数据提取任务]
Task1 -->|执行成功| Task2[数据清洗任务]
Task2 -->|资源不足| WaitThread[WAITING_THREAD<br>等待资源]
WaitThread -->|资源就绪| Task2Continue[继续数据清洗]
Task2Continue -->|执行完成| Task3[数据加载任务]
Task3 -->|发现数据问题| ReadyPause[READY_PAUSE<br>准备暂停]
ReadyPause --> Pause[PAUSE<br>已暂停]
Pause -->|管理员检查后继续| Task3Continue[继续数据加载]
Task3Continue -->|加载完成| Success[SUCCESS<br>全部成功完成]
Pause -->|发现问题严重| ReadyStop[READY_STOP<br>准备停止]
ReadyStop --> Stop[STOP<br>已停止]
Success --> End(工作流结束)
Stop --> End
详细状态转换过程
第一阶段:正常执行
- 08:00: 工作流提交 →
SUBMITTED_SUCCESS
- 08:01: 开始执行数据提取任务 →
RUNNING_EXECUTION
- 08:05: 数据提取成功,开始数据清洗 →
RUNNING_EXECUTION
第二阶段:资源等待
- 08:10: 数据清洗任务需要大量内存,资源不足 →
WAITING_THREAD
- 08:15: 资源调度器分配足够资源 → 返回
RUNNING_EXECUTION
- 08:20: 数据清洗完成,开始数据加载 →
RUNNING_EXECUTION
第三阶段:人工干预
- 08:25: 数据加载时发现源数据质量问题 →
READY_PAUSE
- 08:26: 系统暂停工作流 →
PAUSE
- 08:30: 管理员检查后确认可继续 → 返回
RUNNING_EXECUTION
第四阶段:完成
- 08:40: 数据加载完成 →
SUCCESS
- 08:41: 工作流结束
异常情况变体
情况一:执行失败
flowchart LR
Running[RUNNING_EXECUTION] -->|提取失败| Failure[FAILURE]
Failure -->|自动重试| FaultTolerance[NEED_FAULT_TOLERANCE]
FaultTolerance -->|重试3次| Running
Failure -->|重试耗尽| FinalFailure[最终FAILURE]
情况二:紧急停止
flowchart LR
Running[RUNNING_EXECUTION] -->|发现严重错误| ReadyStop[READY_STOP]
ReadyStop --> Stop[STOP]
Stop --> End(强制终止)
实际API返回示例
如果此时查询任务状态,可能返回:
{
"totalCount": 3,
"taskCountDtos": [
{"count": 1, "taskStateType": "SUCCESS"},
{"count": 1, "taskStateType": "FAILURE"},
{"count": 1, "taskStateType": "PAUSE"},
{"count": 0, "taskStateType": "RUNNING_EXECUTION"},
// ... 其他状态都是0
]
}
管理意义
通过这个例子可以看到:
- 状态监控:管理员可以实时了解任务执行情况
- 问题定位:通过状态变化追溯问题发生点
- 资源调度:
WAITING_THREAD
状态提示需要优化资源分配 - 人工干预:紧急情况下可通过暂停/停止防止问题扩大
这种状态机制确保了大数据工作流的可靠性和可管理性。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)