
[英]How to design a NServiceBus Saga started by receipt of multiple messages
[英]How to prevent a NServiceBus saga from being started multiple times?
我想创建一个由消息“Event1”启动的传奇,但它将忽略具有相同应用id的“重复”开始消息的接收(这可能是由于两个或更多用户在短时间内点击UI按钮) 。 文档似乎表明这种方法可行:
IAmStartedByMessages<Event1>
ConfigureMapping<Event1>(s => s.SomeID, m => m.SomeID);
配置自身ConfigureMapping<Event1>(s => s.SomeID, m => m.SomeID);
这会有用吗? 如果订阅者是多线程的,我会遇到竞争条件吗? 如果是这样,我怎样才能达到预期的行为?
谢谢!
当同时处理两个Event1消息时发生竞争条件。 防止创建两个saga实例的方法是在SomeID列上设置唯一约束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.