

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自動化任務重試
<a name="job_retries"></a>

您可將重試策略套用至任務和任務定義，讓失敗的任務自動重試。可能的失敗案例包括下列項目：
+ 容器任務有任何的非零結束代碼
+ Amazon EC2 執行個體失敗或終止
+ 內部 AWS 服務錯誤或中斷

當任務提交至任務佇列，並進入視為嘗試`RUNNING`的狀態時。根據預設，每個任務會嘗試一次移至 `SUCCEEDED` 或 `FAILED` 任務狀態。不過，任務定義和任務提交工作流程都可以用來指定嘗試 1 到 10 次之間的重試策略。如果指定 [evaluateOnExit](job_definition_parameters.md#retryStrategy-evaluateOnExit)，則最多可包含 5 個重試策略。如果指定 [evaluateOnExit](https://docs.aws.amazon.com/batch/latest/APIReference/API_EvaluateOnExit.html)，但沒有任何重試策略相符，則會重試任務。對於不符合以退出的任務，請新增因任何原因退出的最終項目。例如，此`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` 狀態。如需詳細資訊，請參閱[任務狀態](job_states.md)。

**注意**  
已取消或終止的任務不會重試。此外，不會重試因為任務定義無效而失敗的任務。

如需詳細資訊，請參閱 [重試策略](job_definition_parameters.md#retryStrategy)、 [建立單一節點任務定義](create-job-definition.md)[教學課程：提交任務](submit_job.md)和 [已停止任務錯誤代碼](https://docs.aws.amazon.com/AmazonECS/latest/userguide/stopped-task-error-codes.html)。