任务处理

了解 Marathon 任务类别

也可以 .

图 1. 任务处理图

终端状态

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

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

  1. case TASK_DROPPED => Dropped

任务因瞬时错误而无法启动。任务的执行器从未启动运行。与 TASK_ERROR 不同,任务描述有效,尝试再次启动任务可能会成功。

  1. case TASK_GONE => Gone

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

鉴于代理被视为已消失且无法提供这些卷,如果任务配置为使用 本地持久卷,则这些将被放弃。将创建一个新任务作为替代,并使用新卷。

    任务成功完成。

    1. case TASK_UNKNOWN => Unknown

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

    1. case TASK_KILLED => Killed

    任务被执行器关闭。

    非终端状态

    初始状态:任务正在分段。

      任务正在运行。

      1. case TASK_KILLING => Killing

      任务被执行器关闭。

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

      [

      为无法访问的任务配置 Marathon

      ]($d062b4402f3b3221.md)