我想创建一个由消息“Event1”启动的传奇,但它将忽略具有相同应用ID的“重复”启动消息的接收(这可能是由于两个或更多用户在短时间内点击UI按钮时间)。文档似乎表明这种方法可行:
IAmStartedByMessages<Event1>
ConfigureMapping<Event1>(s => s.SomeID, m => m.SomeID);
这会有用吗?如果订阅者是多线程的,我会遇到竞争条件吗?如果是这样,我怎样才能达到预期的行为?
谢谢!
答案 0 :(得分:5)
当同时处理两个Event1消息时发生竞争条件。防止创建两个saga实例的方法是在SomeID列上设置唯一约束。