自动作业重试
您可以将重试策略应用于作业和作业定义,这将允许失败的作业自动重试。可能的失败场景包括以下情况:
-
来自容器作业的任何非零退出代码
-
Amazon EC2 实例失败或终止
-
内部 AWS 服务出错或中断
在将作业提交到作业队列并置于 RUNNING
状态时,将视为一次尝试。默认情况下,每个作业均可尝试移至 SUCCEEDED
或 FAILED
作业状态一次。不过,作业定义和作业提交工作流都可以用来指定一个具有 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
状态。有关更多信息,请参阅 作业状态。
注意
不会重试已取消或终止的作业。此外,也不会重试因作业定义无效而导致失败的作业。
有关更多信息,请参阅 重试策略、创建单节点作业定义 、教程:提交作业 和已停止的任务错误代码。