Amazon SWF ワークフロー実行のクローズ - Amazon Simple Workflow Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SWF ワークフロー実行のクローズ

ワークフロー実行を開始すると、その実行が開かれます。開いているワークフロー実行を完了済み、キャンセル済み、失敗、またはタイムアウトとしてクローズできます。新しい実行として続行するか、終了することもできます。ワークフロー実行は、ディサイダー、ワークフローの管理者、または Amazon SWF によってクローズできます。

ワークフローのアクティビティが終了したとディサイダーが判断した場合、RespondDecisionTaskCompleted アクションを使用し、CompleteWorkflowExecution 決定を渡して、ワークフロー実行を完了済みとしてクローズする必要があります。

または、ディサイダーがワークフロー実行をキャンセル済みまたは失敗としてクローズできます。実行をキャンセルするには、ディサイダーは RespondDecisionTaskCompleted アクションを使用して CancelWorkflowExecution 決定を渡す必要があります。

ディサイダーが通常の完了以外の状態になった場合、ワークフロー実行は失敗する必要があります。実行が失敗するためには、ディサイダーは RespondDecisionTaskCompleted アクションを使用して FailWorkflowExecution 決定を渡す必要があります。

Amazon SWF はワークフロー実行をモニタリングし、ユーザーが指定したタイムアウト設定を超えないようにします。ワークフロー実行時間がタイムアウトすると、Amazon SWF は自動的にそれをクローズします。このタイムアウト値の詳細については、「Amazon SWF タイムアウトの種類 」セクションを参照してください。

また、ディサイダーは、実行をクローズし、RespondDecisionTaskCompleted アクションを使用して ContinueAsNewWorkflowExecution 決定を渡すことにより、新しい実行として論理的に続行することもできます。これは、時間の経過とともに履歴が大きくなりすぎる場合がある、長時間実行されるワークフロー実行には有効な戦略です。

最後に、Amazon SWF コンソールから、または TerminateWorkflowExecution API を使用してプログラムで、ワークフロー実行を直接終了できます。終了により、ワークフロー実行が強制クローズされます。ディサイダーはワークフロー実行のクローズを管理できるため、終了よりもキャンセルが推奨されます。

Amazon SWF は、実行が特定のサービス定義の制限を超えた場合、ワークフローの実行を終了します。Amazon SWF は、親ワークフローが終了し、該当する子ポリシーで子ワークフローも終了する必要があることが示されている場合、子ワークフローを終了します。