2

さまざまな cron ベースのプロセスから Amazon Simple Workflow Service に移行しています。これらの多くは、特定の時間に実行する必要がなくなり、必要なときにトリガーされるだけです。ただし、特定のワークフローでは、ワークフロー (または、ワークフロー内のすべてのアクティビティ) が並行して発生せず、常に 1 つのみが実行されることを保証する必要があります。ただし、終了したら、再度実行しても問題ありません。

ワークフロー ID の一意性に依存することは、何か問題があるのでしょうか、それとも設計が悪いのでしょうか? もしそうなら、何が問題で、特定のワークフローが開始されるべきではないときに開始されないようにするには、システムをどのように設計すればよいでしょうか。

4

1 に答える 1

1

SWF に依存しworkflowId、状態の永続化および調停レイヤーとして一意の実行を使用する (2 番目に来る方が拒否される) ことは、間違いなく悪い設計ではありません。まさにそれがサービスの目的です。

はい、両方ともworkflowIdactivityId一意の実行を保証するのに十分です。

ここで、ワークフロー内のアクティビティの場合、activityId必ずしも一意である必要はありません。タスクごとに作業をスケジュールするかどうかはディサイダー次第です。ワークフローのシリアルおよびパラレル実行の例については、boto SWF チュートリアルを参照してください。

于 2013-11-02T10:45:28.610 に答える