2014-07-24 26 views
1

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

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

回答

2

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

如果你使用的卤面与MSMQ,最简单的方法来检查你的队列(输入队列,队列错误,MSMS死信队列)和重试失败的消息的传送是火起来Rebus Snoop。 Rebus也有ReturnToSourceQueue CLI tool for MSMQ

如果您使用的是Azure服务总线,我可以推荐Paolo Salvatori's Service Bus Explorer,我已经在一些项目中使用了自己的一点点。

随着RabbitMQ,我通常使用RabbitMQ的内置web管理插件来检查队列,然后Rebus也带有一个ReturnToSourceQueue CLI tool for RabbitMQ以及。

如果你使用SQL Server,我可以推荐发射了SQL Server Management Studio并让你的SQL-FU)

如果你想代码的东西,做某种自动转发或处理失败的消息,我可以推荐使用Rebus的传输实现(即MsmsMessageQueue(以及MsmqUtil),RabbitMqMessageQueue,AzureServiceBusMessageQueue等)来处理原始传输消息的接收和发送 - 这是我多次使用的方法我自己例如实施粗略的第二级重试机制以及失败消息的转发和存档等。

+0

我应该提到我使用azure服务总线。抱歉!如果没有线索,这将会导致这种做法太差。 – dampee

+0

我已经扩展了相应的答案:) – mookid8000

+0

谢谢。我试过服务总线浏览器。但Rebus不喜欢这一举措。消息能够“按原样”移动到输入队列吗? – dampee