Как обеспечить доставку сообщений уровня приоритета 2 только после доставки всех сообщений уровня приоритета 1?
Я отправляю уведомления своим пользователям, и может быть несколько уведомлений, на которые может претендовать каждый пользователь. Эти уведомления имеют приоритет, связанный с ними, и цель состоит в том, чтобы пользователь получал только сообщения с наивысшим приоритетом.
Цель - Я хотел бы доставить все сообщения с уровнем приоритета 1 до того, как начать доставку сообщений с уровнем приоритета 2.
Ограничение - Я не могу одновременно доставлять уведомления с различными уровнями приоритета. Я могу только одновременно доставлять уведомления с одинаковым уровнем приоритета.
В идеале я бы хотел иметь
Очередь, в которую я сбрасываю все сообщения одного уровня приоритета. В этой очереди будет несколько потребителей, которые будут одновременно доставлять эти сообщения.
Как только все сообщения, скажем, уровня приоритета 1 будут доставлены, а очередь пуста, я добавлю в очередь все сообщения уровня приоритета 2, которые будут одновременно доставляться несколькими потребителями
Продолжить вышеуказанный процесс для последующих уровней приоритета
Вопрос - Мне интересно, как реализовать этот дизайн / поток в RabbitMQ? В качестве альтернативы есть лучший подход к решению этой ситуации.
Пожалуйста, дайте мне знать, если мне что-то непонятно, и могли бы добавить больше деталей для уточнения.
Спасибо