我目前正在调查公共交通。我根据星巴克样本编写了一个简单的样本。
我有以下传奇:
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()
);
});
我遇到的问题是我有ReportRequest
事件的X订阅者,每个订阅者创建报告的一小部分。因此,要使报告完整,所有订阅者都需要发布ReportComplete
事件。目前,第一个完成ReportComplete
事件的用户和saga也将完成。
如何设置一个传奇,以便等待所有X订阅者在完成之前响应给定的消息?
答案 0 :(得分:0)
我认为这是一个两步解决方案: