我想创建一个由消息“Event1”开始的传奇,但它会忽略收到具有相同应用 ID 的“重复”开始消息(这可能是由于两个或多个用户在短时间内点击了 UI 按钮) .文档似乎表明这种方法可行:
IAmStartedByMessages<Event1>
ConfigureMapping<Event1>(s => s.SomeID, m => m.SomeID);
配置自身这会起作用吗?如果订阅者是多线程的,我会遇到竞争条件吗?如果是这样,我怎样才能实现所需的行为?
谢谢!
最佳答案
当同时处理两个 Event1 消息时会发生竞争条件。防止创建两个 saga 实例的方法是在 SomeID 列上设置唯一约束。
关于nservicebus - 如何防止多次启动 NServiceBus 传奇?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6431307/