Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2.

Они связаны с очередью some_queue.
По задаче предполагается, что есть два паблиша.
Паблиш1 отправляет body с роутом роут1 , а паблиш 2 отправляет совсем иное содержимое body с rout2

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

Из-за этого Консьюмер2 не может получить сообщения с роутом2

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

10 ответов

80 просмотров

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

Format- Автор вопроса
Dmitry
Это кривая архитектура - вам надо вашему консьюмер...

Я это предложил боссу. Сказал ничего не трогай и прав лишил 😂

Format- Автор вопроса
Dmitry
Это кривая архитектура - вам надо вашему консьюмер...

Aio-pika Есть метод IncomingMessage.reject(requeue: bool = true) Но я не понял его смысл Он просто в очередь возвращает сообщение, но при этом получается вечный цикл с этим сообщениями с роут2 Он прогоняет их и возражает и снова берет Думал может есть что то такое Более подходящее https://aio-pika.readthedocs.io/en/latest/apidoc.html#aio_pika.IncomingMessage.reject

Format
Aio-pika Есть метод IncomingMessage.reject(requeue...

Разве после этого метода вы повторно не получите тоже сообщение? А , дочитал про цикл

Format- Автор вопроса
Dmitry
Разве после этого метода вы повторно не получите т...

Вот я и пишу, что там вечный цикл получается 😂😂😂

Format- Автор вопроса
Dmitry
Ну так то не решение ))

Ну мож более опытные подскажут вот и написал сюда Я с реббитом знаком второй день 🙄

Format
Ну мож более опытные подскажут вот и написал сюда ...

очередь фифо, и когда вы делаете нак - это вот этот метод reject(c флагом тру) - вы возвращаете сообщение в очередь так как консьюмер его не обработал - соответственно его скипнуть не получится, дайрект эксчендж может роутить в две очереди сообщения

Format- Автор вопроса
Tim Tim
очередь фифо, и когда вы делаете нак - это вот это...

Т.е. нужно все же для роута2 создать отдельную очередь, верно я вас понял?)

Похожие вопросы

Обсуждают сегодня

Всем привет. Понимаю, что, наверное, сто раз поднимали эту тему, но по ключевым словам не смог найти. Как передать в values.yaml зависимого хелм-чарта теги образов, собираемых...
Vitalik Petrov
4
Всем привет. Werf v2.10.5 При удалении релиза вместе с неймспейсом (werf dismiss --namespace namespace_name) Сыпятся ошибки ┌ Waiting for resources elimination: namespaces/rel...
Vitalik Petrov
1
@aigrychev, @ilya_lesikov добрый день! а поддерживает ли werf helm xxxx или werf bundle xxxx работу с сабчартами через http-прокси? (сработает ли использование HTTP_PROXY/HTTP...
Сергей Голод
4
Добрый день! Удалил все файлы с переменными из проекта, получил Error: release deploy: process resources: error validating adoptable resources: adoption validation failed: re...
Evgheni Mad
2
Привет! Вопрос про werf helm Приложение деплоится через werf helm upgrade --atomic Иногда(все условия для воспроизведения до конца непонятны, но есть версия, что это происходи...
𝓐𝓵͢͢͢𝓮𝔁 C
2
Всем привет. Сегодня добавили в приложение дополнительный образ nginx, в который докидывается системная статика прям в образ. При деплое бандлами деплоилось 200+ джоб(клиентов...
Владимир Муковоз
6
Добрый день, после перехода с версии 1.2 на 2.10 werf cleanup начал удалять использующиеся теги, и до и после обновления использовались дефолтные политики keepPolicies Подскаж...
Дмитрий
29
Блин а мне как поумнеть ?
Toxin
191
Друзья, добрый день. Прошу подсказать с базовым вопросом по использованию CI переменных gitlab в werf.yaml. Хочу в beforeInstall использовать env переменную с токеном. Мне нуж...
Anton Zol
10
Вопросик не совсем werf. Но вдруг мы подскажите воркэраунд или ещё что-нибудь. Могу ли я как-нибудь в моменте деплоя внутри heml рендера получить хэшсумму файла шаблона (./tem...
Alex Подрябинкин
11
Карта сайта