NServiceBus:调用MarkAsComplete()时删除延迟消息

时间:2012-12-31 13:07:33

标签: c# nservicebus

使用NServiceBus 3.2.7。当调用MarkAsComplete时(一个人在延迟消息输出时取消他们的命令。)看来调用MarkAsComplete确实消除了传奇,但之前延迟的消息仍然在超时队列中。当他们最终处理时,他们会陷入SagaNotFound异常中。我希望能够明显区分未找到的合法传奇和被抛出的传奇之间的区别,因为由于订单被取消而导致传奇被删除。

如何从Raven中删除延期消息?

1 个答案:

答案 0 :(得分:2)

超时和取消之间存在固有的竞争条件。可能是超时已经在取消发生的时候传递,因此无法清除。

正是出于这个原因,NServiceBus将SagaNotFound引发为事件,而不是例外。

希望有所帮助。