Может ли клиентская служба Pika RabbitMQ потреблять и публиковать сообщения?
Может ли кто-то с опытом Пика дать мне быстрый ответ "да / нет" относительно того, возможна ли следующая функциональность, или моё мышление, что это так, указывает на отсутствие концептуального понимания Пики.
Мой желаемый функционал:
Служба Python (однопоточный скрипт) имеет одно соединение с моим брокером RabbitMQ с помощью адаптера SelectConnection.
Это соединение имеет два канала.
Используя один канал A, служба объявляет очередь и связывается с некоторым обменом E1. Другой канал, B, используется для объявления некоторого другого обмена, E2.
Служба потребляет сообщения из очереди через A. Она выполняет небольшую обработку этих сообщений, [возможно, выполняет CRUD через подключение к экземпляру MongoDB,] затем публикует сообщение для обмена E2 через B.
Я внимательно прочитал документы Пика и не нашел достаточно информации, чтобы понять, выполнимо ли это.
Проще говоря - может ли один скрипт Python публиковать и потреблять через одно соединение адаптера selectconnection?
0 ответов
Да, конечно. Вы можете достичь этого разными способами (через одно и то же соединение, другое соединение, один и тот же канал, другой канал и т. Д.)
Когда я реализовал это в прошлом, я делаю то, что создаю свое соединение, получаю канал и настраиваю своего потребителя с его делегатом (функцией). Когда вызывается моя функция приема сообщений, я получаю параметр канала, который идет с ней, и последовательно использую его для публикации следующего сообщения в другой очереди. Если вы не хотите использовать один и тот же канал, вы можете просто настроить другой.