本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
作业超时
可以为作业配置超时时间,以便在某个作业运行的时间超过超时时间时让 AWS Batch 终止该作业。例如,您可能有一个作业,并且您知道该作业只需 15 分钟即可完成。有时,您的应用程序会陷入循环并永远运行,因此您可以将超时设置为 30 分钟以终止卡住的作业。
重要
默认情况下, AWS Batch 没有任务超时。如果您未定义作业超时,则作业将一直运行到容器退出。
您可以指定一个 attemptDurationSeconds
参数,该参数必须至少为 60 秒,在您的任务定义中,或者在您提交任务时。在任务尝试的时间startedAt
戳之后经过此秒数后, AWS Batch 将终止该作业。在计算资源上,作业的容器会收到 SIGTERM
信号,以便为应用程序提供正常关闭的机会。如果容器在 30 秒后仍在运行,则会发送 SIGKILL
信号以强制关闭容器。
超时终止是基于最佳效果来处理的。您不应期望超时终止正好在作业尝试超时时执行(可能有几秒钟的延迟)。如果您的应用程序需要精确的超时执行,您应该在该应用程序中实施此逻辑。如果您有大量任务同时超时,超时终止的行为将类似于先入先出队列,在此队列中,任务是成批终止的。
注意
AWS Batch 作业没有最大超时值。
如果某个任务因超过超时时间而终止,它不会被重试。如果任务尝试自行失败,则当启用了重试并且超时倒计时对新尝试重新开始时,该任务可能会重试。
重要
在 Fargate 资源上运行的作业不能期望运行超过 14 天。如果超时时间超过 14 天,Fargate 资源可能不再可用,作业将被终止。
对于数组任务,子任务与父任务具有相同的超时配置。
有关提交带有超时配置的 AWS Batch 作业的信息,请参阅教程:提交作业。