. NET RabbitMQ Client - Как отказаться от повторно доставленных сообщений? - PullRequest
0 голосов
/ 19 июня 2020

Прежде, чем я объясню свою проблему. У меня есть постоянное соединение клиент-сервер RabbitMQ для автоматического восстановления с использованием клиентской библиотеки. NET RabbitMQ. Счетчик предварительной выборки установлен на 300. Лог обработки сообщений c - это обработчик событий, который используется 1 потребителем (я использую EventingBasicConsumer).

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

Я застрял в том, какой должен быть правильный подход для решения этой проблемы. Я думаю, может быть, мне просто нужно хранить и отслеживать сообщения, которые я получил во внутренней очереди, и избегать обработки сообщений logi c в EventBasicConsumer eventHandler?

...