使用EasyNetQ for RabbitMQ时的自定义错误队列名称?

mar*_*nes 8 .net c# message-queue rabbitmq easynetq

我没有让我的未处理异常进入EasyNetQ_Default_Error_Queue,我想知道是否有一种方法可以显式地说明应该用于给定应用程序的错误队列的名称,所以错误不会在这一个EasyNetQ_Default_Error_Queue中结束吗?

我可以看到如何指定常规消息队列名称,但没有找到任何有关错误队列名称的信息.

Wie*_*sma 11

是的,您可以通过覆盖IConventions对象上的委托来自定义命名约定:

https://github.com/EasyNetQ/EasyNetQ/blob/master/Source/EasyNetQ.Tests/ConventionsTests.cs

这应该可行:

var bus = RabbitHutch.CreateBus("host=localhost");
bus.Advanced.Container.Resolve<IConventions>().ErrorExchangeNamingConvention = info => "MyExchangeNaming";
bus.Advanced.Container.Resolve<IConventions>().ErrorQueueNamingConvention = () => "MyErrorQueueNaming";
Run Code Online (Sandbox Code Playgroud)