I have four consumer when error occured message publishing to default EasyNetQ_Default_Error_Queue is it possible to each queue consumer write own error exchange
For example;
Queue Name : A ErrorExchange :A_ErrorExchange
Queue Name : B ErrorExchange :B_ErrorExchange
bus.Advanced.Conventions.ErrorExchangeNamingConvention = new ErrorExchangeNameConvention(info => "A_DeadLetter");
bus.Advanced.Conventions.ErrorExchangeNamingConvention = new ErrorExchangeNameConvention(info2 => "B_DeadLetter");
From the code you've provided, it looks like you're almost there -- you just need to override ErrorExchangeNamingConvention
and ErrorQueueNamingConvention
appropriately.
As an example, here's a method that will return an instance of IBus
with these conventions overridden to incorporate the specified consumer name:
public IBus CreateBus(string connectionString, string consumerName)
{
var bus = RabbitHutch.CreateBus(connectionString);
// Modify the following to create your error exchange name appropriately
bus.Advanced.Container.Resolve<IConventions>().ErrorExchangeNamingConvention =
info => consumerName + "_ErrorExchange";
// Modify the following to create your error queue name appropriately
bus.Advanced.Container.Resolve<IConventions>().ErrorQueueNamingConvention =
() => consumerName + "_ErrorQueue";
return bus;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With