任务处理

了解 Marathon 任务类别

也可以 。

图 1. 任务处理图

终端状态

任务描述包含错误。Marathon 将任务标记为错误之后,就会将其排除并启动新的任务。

任务未能成功完成。Marathon 将任务标记为失败后,就会将其排除并启动新的任务。

  1. case TASK_DROPPED => Dropped
  1. case TASK_GONE => Gone

任务在已关闭的代理上运行(例如,代理已分区、重新启动,然后重新连接到管理节点;在重新启动之前运行的任何任务都会从“无法访问”转换为“消失”)。任务不再运行。Marathon 将任务标记为消失后,就会将其排除并启动新的任务。

任务在管理节点联系不到的代理上运行;算子断定该代理已关闭,但尚未得到管理节点的直接确认。如果算子正确,则任务不运行,而且这是终端状态;如果算子错误,则任务仍可能运行,并且将来可能恢复为“运行”状态。Marathon 将任务标记为失败后,就会将其排除并启动新的任务。

    任务成功完成。

    1. case TASK_UNKNOWN => Unknown

    管理节点不知晓该任务。这通常是因为 (a) 管理节点从未知晓任务,或 (b) 管理节点的垃圾收集器收集了该任务的元数据,所以忘记了该任务。任务可能仍在运行,也可能不再运行。Marathon 收到“未知”消息后,就会排除该任务并启动新的任务。

    1. case TASK_KILLED => Killed

    任务被执行器关闭。

    非终端状态

    执行器正在启动任务。

      任务正在运行。

      1. case TASK_KILLING => Killing

      任务被执行器关闭。

      任务在与管理节点丢失联系的代理上运行,通常是因为网络故障或分区。任务可能仍在运行,也可能不再运行。Marathon 收到“任务不可访问”消息之后,就会启动替换任务。如果不可访问的时间超过 15 分钟,Marathon 就会将任务标记为未知,然后排除任务。

      [

      ]($b4151636bd709f89.md)