作业超时 - AWS Batch

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

作业超时

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

重要

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

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

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

注意

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

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

重要

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

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

有关提交带有超时配置的 AWS Batch 作业的信息,请参阅教程:提交作业