5

AWSバッチジョブ(またはキュー)の最大実行時間を設定する方法はありますか?これは、ほとんどのバッチ・マネージャーの標準設定であり、何らかの理由でジョブがハングした場合にリソースを無駄にしないようにします。AWSバッチジョブでwalltimeを設定する方法はありますか?

+1

@asdfg Walltimeは経過時間を指し、それは誤字ではありません。 – SriniV

答えて

2

AFAIKこれを行う機能はありません。ただし、同様の質問については、forumに回避策が示唆されています。

1つのアイデアは、ステップ関数からのアクティビティとしてバッチを呼び出し、そのジョブからスケジュール(例えば毎分)に戻すことです。停止すると、 が応答し、その状況が アクティビティでタイムアウトとして検出され、それに応じて動作します(ジョブの終了など)。理想的な ソリューションではありません(特に、ジョブが「ゾンビ」としてピングバックし続ける場合)、 しかし、これが始まりです。また、アクティビティトークンを データベースに格納して、バッチジョブIDにそれらをトレースする必要があります。

は代わりに、2つの段階にその設定を分割し、そして にそのための(別のラムダからの)第二の工程と、その後ポーリングバッチをバッチジョブIDを渡し、その後、第1の状態で、ラムダからバッチ ジョブをスケジュールRetailとIntervalSeconds(たとえば1分ごとに1回、指数バックオフを使用して さえも含む)の 状態と、 タイムアウトに基づいて計算されたMaxAttempts。この方法では、外部状態ストレージ メカニズム、長いポーリング、またはジョブからの「ping back」(それは ゾンビになる可能性があります)を必要としませんが、欠点はより多くのステップです。

1

あり、バッチジョブにtimeoutを設定するオプションはありませんが、あなたは、セットアップごとに1時間かそこらをトリガし、24 hours言う前に作成されたジョブを削除しますラムダ関数をすることができます。

1

awsで作業していたため、バッチジョブの実行時間を最大限に設定する方法が見つかりませんでした。 しかし、利用できる代替方法があります。 AWS Forum

1

悲しいことに、AWS Batchに制限実行時間を設定する方法はありません。 1つの解決方法は、実行時間制限をスケジュールするためにドッカーのエントリポイントを編集することです。

関連する問題