Выбор конкретного сообщения из очереди rabbitmq

158
20 августа 2019, 20:40

Имеем: 2 очереди - messages и error_messages, при ошибке сообщение падает в error_message, у каждого сообщения есть уникальный ID.

Бизнес процесс такой: администратор мониторит error_messages, делает правки по конкретному сообщению и обратно перезапускает обработку переместив конкретное сообщение обратно в очередь messages.

Сейчас это реализовано в MsSql.

Вопрос: Возможно ли в rabbitmq, перенести только одно сообщение из одной очереди в другую?

p.s. Есть команда Move messages, но она переносит все сообщения, что расточительно, нужно перенести только одно сообщение.

Answer 1

Логично сделать что-то типа:

Администратор читает сообщение из очереди с ошибками указывая requeue: false. Далее в зависимости от ситуации сообщение нужно отправить либо обратно в эту же очередь или в другую очередь с задачами.

Можно сделать это автоматизированно, при возникновении ошибки, сообщение попадает в dead letter exchange (DLX), так оно по routing key попадает в очередь в которой может пролежать столько сколько нужно, а потом само вернуться в очередь с задачами, это удобно при возникновении временных ошибок и необходимости гарантии доставки сообщений. Плюс ко всему удобно мониторить очередь отстойника (если она начала расти, то что-то пошло не так).

Подробнее о DLX можно почитать тут:

https://www.rabbitmq.com/dlx.html

https://habr.com/ru/post/235505/

Answer 2

Очередь на то и очередь чтобы выдавать сообщения последовательно, нельзя просто так сказать "Эй ты сообщение под номером 101 иди на обработку".В БД такое возможно поменяв значение столбца, но таблицы БД и очередь это разная структура данных.

READ ALSO
C# UWP и веб-сервис

C# UWP и веб-сервис

Есть просто приложение на C# UWP, в котором по нажатию на кнопку происходит определенное событие (включается реле на плате)Подскажите, можно...

165
Как сделать sluggable в asp .net core

Как сделать sluggable в asp .net core

Подскажите как в asp net core сделать sluggableК примеру ввожу я в статье в поле title "лорем айпсам долорем сит", и в поле url генерировалось "lorem-ipsum-dolorom-sit"...

139
Excel файла не создается приложением ASP.NET

Excel файла не создается приложением ASP.NET

WinServer 2016 (Windows 10) + IIS 10 + MS Office 2010Приложение asp

184