以下是 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
(用户停止)这个流程图清晰地展示了 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
SUBMITTED_SUCCESS
RUNNING_EXECUTION
RUNNING_EXECUTION
WAITING_THREAD
RUNNING_EXECUTION
RUNNING_EXECUTION
READY_PAUSE
PAUSE
RUNNING_EXECUTION
SUCCESS
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(强制终止)
如果此时查询任务状态,可能返回:
{
"totalCount": 3,
"taskCountDtos": [
{"count": 1, "taskStateType": "SUCCESS"},
{"count": 1, "taskStateType": "FAILURE"},
{"count": 1, "taskStateType": "PAUSE"},
{"count": 0, "taskStateType": "RUNNING_EXECUTION"},
// ... 其他状态都是0
]
}
通过这个例子可以看到:
WAITING_THREAD
状态提示需要优化资源分配这种状态机制确保了大数据工作流的可靠性和可管理性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。