3

我有一个运行良好的输入队列。有时消息会进入错误队列。现在我希望能够检查这些消息,如果我知道这条特定消息会通过,可能会再次将它们转发到输入队列。

如何开始检查错误队列?有没有最佳实践?我不能只做一个.CreateBus().Start(),因为这会触发普通处理程序的处理程序。

4

1 回答 1

5

检查队列的方式和获得的选项取决于所选的传输方式。

如果您将 Rebus 与 MSMQ 一起使用,检查队列(输入队列、错误队列、MSMS 死信队列)和重试传递失败消息的最简单方法是启动Rebus Snoop。Rebus 也有一个用于 MSMQ 的 ReturnToSourceQueue CLI 工具

如果您使用的是 Azure Service Bus,我可以推荐Paolo Salvatori 的 Service Bus Explorer,我自己在一些项目中使用过它。

使用 RabbitMQ时,我通常使用 RabbitMQ 的内置 Web 管理插件来检查队列,然后 Rebus还为 RabbitMQ 提供了 ReturnToSourceQueue CLI 工具

如果您使用的是 SQL Server,我建议您启动 SQL Server Management Studio 并启动您的 SQL-fu;)

如果您想编写某种自动转发或处理失败消息的代码,我可以推荐使用 Rebus 的传输实现(即MsmsMessageQueue(连同MsmqUtil)、RabbitMqMessageQueueAzureServiceBusMessageQueue等)来处理原始传输消息的接收和发送 -这是我自己多次使用的一种方法,例如实现粗略的二级重试机制以及失败消息的转发和归档等。

于 2014-07-24T21:28:14.777 回答