AWS Batch
ユーザーガイド

ジョブのタイムアウト

この期間を超えてジョブが実行されると AWS Batch でジョブが終了するように、ジョブのタイムアウト期間を設定できます。たとえば、15 分で完了することがわかっているジョブがあるとします。アプリケーションがループ状態に止まり、永続的に実行される場合に、止まったジョブを終了するためにタイムアウトを 30 分に設定できます。

attemptDurationSeconds パラメータを指定します。ジョブ定義の際、またはジョブ送信時に行い、60 秒以上にする必要があります。ジョブ試行の startedAt タイムスタンプからこの秒数が経過すると、ジョブは AWS Batch によって終了します。コンピューティングリソースで、ジョブのコンテナは SIGTERM シグナルを受け取り、アプリケーションが適切にシャットダウンできるようにします。30 秒後にコンテナがまだ実行されている場合、SIGKILL シグナルが送信されてコンテナを強制的にシャットダウンします。

タイムアウトの終了はベストエフォートベースで処理されます。ジョブ試行がタイムアウトするタイミングでタイムアウトが終了するとは限りません (数秒長くかかることがあります)。アプリケーションで正確にタイムアウトを実行する必要がある場合は、アプリケーション内にこのロジックを実装します。多数のジョブを同時にタイムアウトする場合、タイムアウトの終了は先入れ先出しキューとして行われ、ジョブはバッチで終了します。

タイムアウト期間の超過で終了したジョブは再試行されません。ジョブ自体が原因でジョブ試行に失敗した場合、再試行が有効であれば再試行され、新しいジョブ試行のタイムアウトカウントダウンが開始します。

配列ジョブの場合、子ジョブは、親ジョブと同様にタイムアウト設定されています。

タイムアウト設定で AWS Batch ジョブを送信することについての詳細は、「ジョブの送信」を参照してください。