Исправьте, что отлавливать обмен в RabbitMQ - PullRequest
2 голосов
/ 07 июня 2019

В соответствии с руководством я использую var consumer = new EventingBasicConsumer(channel); для регистрации сообщения в очереди.

Но я заметил, что если обмен удален (принудительно с помощью API) или остановлен кролик, я фактически не получаю никаких уведомлений о том, что что-то не так

var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
    var body = ea.Body;
    var message = Encoding.UTF8.GetString(body);
    Console.WriteLine(" [x] Received {0}", message);
};

Какие события я могу зарегистрировать, чтобы узнать, был ли / когда обмен удален или я был каким-то образом отключен по какой-либо причине?

1 Ответ

0 голосов
/ 07 июня 2019

Нет ничего плохого, если exchange удален.Так как ваш потребитель потребляет из очереди , единственный результат состоит в том, что больше сообщений от этого обмена не направляется в очередь.

Это отличается от вашего потребителя , являющегосяотключен от очереди или удаляемой очереди, что приведет к отключению вашего потребителя.Проверьте HandleModelShutdown и другие методы, которые ваш потребитель может использовать для таких случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...