4

我已经实现了很多次都可以正常工作的公共交通传奇。但是,有时消息会进入错误队列或似乎消失了。我正在使用 RabbitMQ。

我想知道: 1. 如何获取导致消息进入错误队列的原因/异常消息?(注意:我的处理程序逻辑位于 try-catch 块中,因此显然这些错误甚至在调用处理程序逻辑之前就发生了) 2. 丢失消息的原因是什么?

提前致谢。

4

1 回答 1

6

我似乎已经弄清楚了:要获取异常,请配置 NLog(或 log4Net),添加对适当 NLogIntegration 库的引用,最后在服务总线的初始化中,包括 sbc.UseNLog(); (对于 NLog)。似乎没有在线文档涵盖此内容。必须通过查看 NLogIntegration 库的方法来弄清楚。

关于消息进入错误队列的问题,错误消息是“消息重试限制超出 rabbitmq://localhost/workers_sagas:08cf6e3e-d772-e62b-1803-73779fa60000”。显然,这是由于我使用 Saga Persistence 的 In-Memory 存储库这一事实造成的。因此,每当托管 saga 的进程重新启动时,所有尚未完成的 saga 都会导致上述错误,因为它们不再在存储库中。

于 2012-10-02T02:29:19.320 回答