2012-04-03 31 views
0

AWS SWFで長時間実行されているタスクを強制終了/再開する方法はありますか?場合によっては、いくつかのタスクがより長く実行されることがあり、特定のタスクを手動で(UIまたはプログラムによって)強制終了し、可能であればタスクを再開したいと考えています。これを達成する方法は?長時間実行中のタスクを強制終了/再開する方法

答えて

0

コンソールは、手動でワークフローを強制終了するオプションです。

ワークフロー全体の実行時間または個々のアクティビティにタイムアウトを設定することもできます。これは、アクティビティの登録時またはアクティビティの開始時に設定できます(defaultTaskStartToCloseTimeoutSecond)。

どの言語を使用しているのかはっきりしません。

Javaを使用している場合は、Flow FrameworkのExponential Retryを調べる必要があります。これにより、失敗した場合にSDKがアクティビティーを再始動します。

0

長時間実行されているアクティビティは、RecordActivityTaskHeartbeatを使用して鼓動することが予想されます。アクティビティプロセスがハングしたりクラッシュしたりすると、長いタスク実行タイムアウトではなく、短いヒアビート間隔の後にタイムアウトエラーが発生します。

ワークフローコード(決定者)は、常にRequestCancelActivityTaskの決定によってアクティビティのキャンセルを要求できます。取り消し要求はRecordActivityTaskHeartbeatコールの出力として返されます。アクティビティの実装はキャンセルし、RespondActivityTaskCanceled APIコールを使用してサービスに報告します。

アクティビティをキャンセルするAWS Flow Frameworkの方法については、Error HandlingセクションのAWS Flow Framework Developer Guideを参照してください。

アクティビティの実装でハートビートと自己キャンセルがサポートされないことがあります。解決方法は、別のキルアクティビティを実行して、最初のアクティビティ実行を終了させることです。たとえば、Unixでは、このようなkillアクティビティは、最初のkillアクティビティを実装するプロセスに対して "kill -9"コマンドを発行することができます。

関連する問題