Может ли клиентская служба Pika RabbitMQ потреблять и публиковать сообщения?

Может ли кто-то с опытом Пика дать мне быстрый ответ "да / нет" относительно того, возможна ли следующая функциональность, или моё мышление, что это так, указывает на отсутствие концептуального понимания Пики.

Мой желаемый функционал:

Служба Python (однопоточный скрипт) имеет одно соединение с моим брокером RabbitMQ с помощью адаптера SelectConnection.

Это соединение имеет два канала.

Используя один канал A, служба объявляет очередь и связывается с некоторым обменом E1. Другой канал, B, используется для объявления некоторого другого обмена, E2.

Служба потребляет сообщения из очереди через A. Она выполняет небольшую обработку этих сообщений, [возможно, выполняет CRUD через подключение к экземпляру MongoDB,] затем публикует сообщение для обмена E2 через B.

Я внимательно прочитал документы Пика и не нашел достаточно информации, чтобы понять, выполнимо ли это.

Проще говоря - может ли один скрипт Python публиковать и потреблять через одно соединение адаптера selectconnection?

0 ответов

Да, конечно. Вы можете достичь этого разными способами (через одно и то же соединение, другое соединение, один и тот же канал, другой канал и т. Д.)

Когда я реализовал это в прошлом, я делаю то, что создаю свое соединение, получаю канал и настраиваю своего потребителя с его делегатом (функцией). Когда вызывается моя функция приема сообщений, я получаю параметр канала, который идет с ней, и последовательно использую его для публикации следующего сообщения в другой очереди. Если вы не хотите использовать один и тот же канал, вы можете просто настроить другой.

Другие вопросы по тегам