1

ワークフローが初期化されると、@ Executeタスクが呼び出され、決定者がタスクのフローを決定できるようになります。

  • ディサイダープロセスが実行されていないときに何が起こるか、SWFはディサイダープロセスを開始してフローを実行できますか。
  • 複数の決定プロセスがある場合はどうなりますか。SWFは、どのプロセスに要求を処理するかをどのように認識しますか。
4

3 に答える 3

2

ディサイダーが実行され、新しいタスクをポーリングしていることを確認するのはユーザーの仕事であるため、Amazon SWF はどのディサイダーがリクエストを処理するかを決定する必要はありません。

http://docs.amazonwebservices.com/amazonswf/latest/developerguide/swf-dg-basic.html#swf-dev-comm-proto

于 2012-04-03T21:35:14.073 に答える
0
What happens when a decider process is not running, can the SWF start the decider process and execute the flow.

いいえ、ディサイダーが実行されていない場合、ワークフローはまったく開始されません。

What happens if there are multiple decider processes, how does SWF know which one to handle the request to.

ワークフローを開始するときに、開始するディサイダー/ワークフローのインスタンスを作成します。このインスタンスは、実際に呼び出されるワークフローを決定します。

于 2012-07-15T06:55:22.463 に答える
0

実際には、ディサイダー プロセスが実行されていない場合、ディサイダーが決定タスクを受け入れていなくても、ワークフローが "DecisionTaskStarted" 状態になることがあります。これにより、ワークフローが実行されていないように見えます。おそらく、決定タスクはタイムアウトし、ワークフローは新しい決定タスクをスケジュールします。これは、ディサイダーによって取得されます (実行中の場合)。

複数のディサイダーを実行している場合は、最初に決定タスクを取得した方が処理されます。異なるディサイダーに異なる決定タスクを与えたい場合は、ワークフローに異なる「task_list」を与えます。「task_list」を持つディサイダーは、同じ task_list を持つ独自のワークフローでのみ動作します。

于 2013-09-05T20:27:13.513 に答える