2

AWS SWF に適していると思われる一連のビジネスプロセスがあります。

これらのプロセスのいくつかには、1 週間から 3 か月の待機期間が含まれます。(簡潔で十分に説明されていない) 例は、「ユーザーが特定のサービスにサインアップした場合、4 か月後もまだ購読している場合は、何らかの形の報酬を送信する」という行に沿っている可能性があります。

サインアップ プロセスをワークフローから開始し、4 か月の待機期間のタイマーを設定することで、これをモデル化することを考えています。

サブスクライバーがその 4 か月の期間内にサブスクリプションをキャンセルした場合、報酬を送信したくないという事実に問題があります。

これを行うには 2 つの方法があります。キャンセル時に「キャンセル」シグナルを送信する (「スリープ」ワークフローを停止する) か、「報酬を送信する」ステップの前に (つまり、ワークフローの後) 「サブスクリプションを確認する」決定を行うかです。目覚める")。(明らかに、「ベルトとブレース」アプローチの場合、両方を行うこともできます)

ここで推奨されるベスト プラクティスはありますか? これらのさまざまなビジネス プロセスが、一度に数万、アクティブまたはスリープ状態になる可能性があります。

4

1 に答える 1

1

私は両方のアプローチを採用します。シグナルまたはRequestCancelWorkflowExecutionを介してワークフローをキャンセルし、「報酬の送信」アクティビティを呼び出す前に (別のアクティビティを使用して) サブスクリプションの有効性を確認します。後者のアプローチを実装する方が簡単ですが、技術的にキャンセルされた未処理のワークフローに対して料金を支払うことになります。SWF は確かに、何万ものオープン ワークフローを問題なく処理できます。

于 2013-12-11T18:56:26.287 に答える