我目前正在调查公交。我已经基于星巴克示例编写了一个简单示例。
我有以下传奇:
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
事件,并且传奇也将完成。如何设置传奇,以使其在完成之前等待所有X订阅者响应给定消息?
最佳答案
我认为这是一个两步解决方案:
关于msmq - 如何检测事件的所有订阅者均已响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19927499/