

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 作业超时
<a name="job_timeouts"></a>

可以为作业配置超时时间，以便在某个作业运行的时间超过超时时间时让 AWS Batch 终止该作业。例如，您可能有一个作业，并且您知道该作业只需 15 分钟即可完成。有时，您的应用程序会陷入循环并永远运行，因此您可以将超时设置为 30 分钟以终止卡住的作业。

**重要**  
默认情况下， AWS Batch 没有任务超时。如果您未定义作业超时，则作业将一直运行到容器退出。

您可以指定一个 `attemptDurationSeconds` 参数，该参数必须至少为 60 秒，在您的任务定义中，或者在您提交任务时。在任务尝试的时间`startedAt`戳之后经过此秒数后， AWS Batch 将终止该作业。在计算资源上，作业的容器会收到 `SIGTERM` 信号，以便为应用程序提供正常关闭的机会。如果容器在 30 秒后仍在运行，则会发送 `SIGKILL` 信号以强制关闭容器。

超时终止是基于最佳效果来处理的。您不应期望超时终止正好在作业尝试超时时执行（可能有几秒钟的延迟）。如果您的应用程序需要精确的超时执行，您应该在该应用程序中实施此逻辑。如果您有大量任务同时超时，超时终止的行为将类似于先入先出队列，在此队列中，任务是成批终止的。

**注意**  
 AWS Batch 作业没有最大超时值。

如果某个任务因超过超时时间而终止，它不会被重试。如果任务尝试自行失败，则当启用了重试并且超时倒计时对新尝试重新开始时，该任务可能会重试。

**重要**  
在 Fargate 资源上运行的作业不能期望运行超过 14 天。如果超时时间超过 14 天，Fargate 资源可能不再可用，作业将被终止。

对于数组任务，子任务与父任务具有相同的超时配置。

有关提交带有超时配置的 AWS Batch 作业的信息，请参阅[教程：提交作业](submit_job.md)。