Как доставить сообщения с более низким приоритетом только после завершения доставки всех сообщений с более высоким приоритетом? - PullRequest
0 голосов
/ 11 января 2019

Как обеспечить доставку сообщений уровня приоритета 2 только после доставки всех сообщений уровня приоритета 1?

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

Цель - Я хотел бы доставить все сообщения с уровнем приоритета 1 до того, как начать доставку сообщений с уровнем приоритета 2.

Ограничение - Я не могу одновременно доставлять уведомления с различными уровнями приоритета. Я могу только одновременно доставлять уведомления с одинаковым уровнем приоритета.

В идеале я бы хотел иметь

  1. Очередь, в которую я сбрасываю все сообщения одного уровня приоритета. В этой очереди будет несколько потребителей, которые будут одновременно доставлять эти сообщения.

  2. Как только все сообщения, скажем, уровня приоритета 1 будут доставлены, а очередь пуста, я добавлю в очередь все сообщения уровня приоритета 2, которые будут одновременно доставляться несколькими потребителями

  3. Продолжить вышеуказанный процесс для последующих уровней приоритета

Вопрос - Мне интересно, как реализовать этот дизайн / поток в RabbitMQ? В качестве альтернативы есть лучший подход к решению этой ситуации.

Пожалуйста, дайте мне знать, если мне что-то непонятно, и могли бы добавить больше деталей для уточнения.

Спасибо

1 Ответ

0 голосов
/ 11 января 2019

RabbitMQ поддерживает приоритетных очередей . Пожалуйста, внимательно прочитайте документ, особенно это касается производительности, связанной с наличием множества различных уровней приоритета.


ПРИМЕЧАНИЕ: команда RabbitMQ отслеживает список рассылки rabbitmq-users и только иногда отвечает на вопросы о StackOverflow.

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