自动作业重试 - AWS Batch

自动作业重试

您可以将重试策略应用于作业和作业定义,这将允许失败的作业自动重试。可能的失败场景包括以下情况:

  • 来自容器作业的任何非零退出代码

  • Amazon EC2 实例失败或终止

  • 内部 AWS 服务出错或中断

在将作业提交到作业队列并置于 RUNNING 状态时,将视为一次尝试。默认情况下,每个作业均可尝试移至 SUCCEEDEDFAILED 作业状态一次。不过,作业定义和作业提交工作流都可以用来指定一个具有 1 至 10 次尝试的重试策略。如果指定了 evaluateOnExit,则它最多可以包含 5 个重试策略。如果指定了 evaluateOnExit,但所有重试策略都不匹配,则会重试该作业。对于与退出不匹配的作业,请添加因任何原因退出的最终条目。例如,此 evaluateOnExit 对象有两个操作为 RETRY 的条目,和一个操作为 EXIT 的最后一个条目。

"evaluateOnExit": [ { "action": "RETRY", "onReason": "AGENT" }, { "action": "RETRY", "onStatusReason": "Task failed to start" }, { "action": "EXIT", "onReason": "*" } ]

在运行时,AWS_BATCH_JOB_ATTEMPT 环境变量将设置为容器的相应作业尝试次数。第一次尝试的编号为 1,后续尝试的编号按升序排列 (2、3、4,以此类推)。

例如,假设作业尝试因任何原因失败,并且重试配置中指定的尝试次数大于 AWS_BATCH_JOB_ATTEMPT 数。则该作业被放回 RUNNABLE 状态。有关更多信息,请参阅 作业状态

注意

不会重试已取消或终止的作业。此外,也不会重试因作业定义无效而导致失败的作业。

有关更多信息,请参阅 重试策略创建单节点作业定义 教程:提交作业已停止的任务错误代码