1

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

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

4

1 回答 1

2

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

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

希望有帮助。

于 2012-12-31T14:23:07.740 回答