DolphinScheduler 任务状态类型流程

举报
皮牙子抓饭 发表于 2025/09/05 10:01:57 2025/09/05
【摘要】 以下是 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

状态转换说明:

  1. 初始状态​:
  • ​SUBMITTED_SUCCESS​​:任务提交成功,进入执行队列
  1. 执行中状态​:
  • ​RUNNING_EXECUTION​​:核心执行状态
  • 等待状态:WAITING_THREAD(等待资源)、WAITING_DEPEND(等待依赖)
  • ​DELAY_EXECUTION​​:延迟执行,后会返回运行状态
  1. 用户干预状态​:
  • 暂停流程:READY_PAUSEPAUSE→(可恢复)→ RUNNING_EXECUTION
  • 停止流程:READY_STOPSTOP→ 结束
  1. 最终状态​:
  • 成功​:SUCCESS(正常成功)、FORCED_SUCCESS(强制成功)
  • 失败​:FAILURE→ 可能触发 NEED_FAULT_TOLERANCE(容错重试)
  • 终止​:KILL(强制杀死)、STOP(用户停止)

关键特点:

  • 环形流程​:失败后可容错重试,形成执行循环
  • 双向转换​:暂停状态可恢复继续执行
  • 多终态​:任务有5种结束方式(成功、强制成功、失败、停止、杀死)
  • 人工干预​:用户可随时暂停、停止或强制成功任务

这个流程图清晰地展示了 DolphinScheduler 任务状态的完整生命周期和转换关系。

实例场景

某公司每天需要执行一个数据清洗工作流,包含以下任务:

  1. 数据提取​:从源数据库提取数据
  2. 数据清洗​:清洗和转换数据
  3. 数据加载​:将清洗后的数据加载到数据仓库

任务状态流转示例

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

详细状态转换过程

第一阶段:正常执行

  1. 08:00: 工作流提交 → SUBMITTED_SUCCESS
  2. 08:01: 开始执行数据提取任务 → RUNNING_EXECUTION
  3. 08:05: 数据提取成功,开始数据清洗 → RUNNING_EXECUTION

第二阶段:资源等待

  1. 08:10: 数据清洗任务需要大量内存,资源不足 → WAITING_THREAD
  2. 08:15: 资源调度器分配足够资源 → 返回 RUNNING_EXECUTION
  3. 08:20: 数据清洗完成,开始数据加载 → RUNNING_EXECUTION

第三阶段:人工干预

  1. 08:25: 数据加载时发现源数据质量问题 → READY_PAUSE
  2. 08:26: 系统暂停工作流 → PAUSE
  3. 08:30: 管理员检查后确认可继续 → 返回 RUNNING_EXECUTION

第四阶段:完成

  1. 08:40: 数据加载完成 → SUCCESS
  2. 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
  ]
}

管理意义

通过这个例子可以看到:

  1. 状态监控​:管理员可以实时了解任务执行情况
  2. 问题定位​:通过状态变化追溯问题发生点
  3. 资源调度​:WAITING_THREAD状态提示需要优化资源分配
  4. 人工干预​:紧急情况下可通过暂停/停止防止问题扩大

这种状态机制确保了大数据工作流的可靠性和可管理性。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。