将 EasyNetQ 用于 RabbitMQ 时自定义错误队列名称?
Custom Error Queue Name when using EasyNetQ for RabbitMQ?
我想知道是否有一种方法可以明确说明应该使用的错误队列的名称,而不是让我未处理的异常进入 EasyNetQ_Default_Error_Queue对于给定的应用程序,因此错误不会全部出现在这个 EasyNetQ_Default_Error_Queue?
我可以看到如何指定常规消息队列名称,但还没有设法找到有关错误队列名称的任何信息。
是的,您可以通过覆盖 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";
我想知道是否有一种方法可以明确说明应该使用的错误队列的名称,而不是让我未处理的异常进入 EasyNetQ_Default_Error_Queue对于给定的应用程序,因此错误不会全部出现在这个 EasyNetQ_Default_Error_Queue?
我可以看到如何指定常规消息队列名称,但还没有设法找到有关错误队列名称的任何信息。
是的,您可以通过覆盖 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";