在我的测试应用程序中,我可以看到处理后的异常消息被自动插入到默认的 EasyNetQ_Default_Error_Queue 中,这很棒。然后,我可以使用Hosepipe成功转储或重新排队这些消息,这也可以正常工作,但需要下拉到命令行并调用 Hosepipe 和 RabbitMQ API 以清除重试消息的队列。
所以我认为我的应用程序最简单的方法是简单地订阅错误队列,这样我就可以使用相同的基础设施重新处理它们。但在 EastNetQ 中,错误队列似乎很特殊。我们需要使用正确的类型和路由 ID 进行订阅,所以我不确定错误队列的这些值应该是什么:
bus.Subscribe<WhatShouldThisBe>("and-this", ReprocessErrorMessage);
我可以使用简单的 API 订阅错误队列,还是需要深入研究高级 API?
如果我的原始消息的类型是TestMessage
,那么我希望能够执行以下操作:
bus.Subscribe<ErrorMessage<TestMessage>>("???", ReprocessErrorMessage);
其中ErrorMessage
是 EasyNetQ 提供的用于包装所有错误的类。这可能吗?