3

現在、公共交通機関について調査中です。Starbucks のサンプルに基づいて簡単なサンプルを作成しました。

私は次の物語を持っています:

    Define(() =>
    {
        Initially(
            When(ReportRequest)
                .Then((saga, message) => saga.ProcessReportRequest(message))
                .TransitionTo(WaitingForReportToComplete)
            );

        During(WaitingForReportToComplete, When(ReportComplete)
            .Then((saga, message) =>
                {
                    Console.WriteLine("Report Complete for '{0}'", saga.Name);
                    saga.CompleteReportRequest(message);
                })
                .Complete()
            );
    });

私が抱えている問題は、X 人のサブスクライバーがReportRequestイベントに参加しており、各サブスクライバーがレポートのごく一部を作成していることです。したがって、レポートが完了したと見なされるには、すべてのサブスクライバーがReportCompleteイベントを発行している必要があります。現時点では、最初に完了したサブスクライバーがReportCompleteイベントを発行し、その後サガも完了します。

すべての X サブスクライバーが特定のメッセージに応答するのを待ってから完了するようにサガを設定するにはどうすればよいですか?

4

1 に答える 1