Я пытаюсь преобразовать свой код, чтобы отправлять сообщения rabbitmq через Pika. У меня много проблем с пониманием того, как отправить простое сообщение, используя асинхронное соединение (например, SelectConnection).Как сделать простой Pika SelectConnection для отправки сообщения в python?
В моем старом коде, который я использую AMQP библиотеку я просто объявить класс как это:
import amqp as amqp
class MQ():
mqConn = None
channel = None
def __init__(self):
self.connect()
def connect(self):
if self.mqConn is None:
self.mqConn = amqp.Connection(host="localhost", userid="dev", password="dev", virtual_host="/", insist=False)
self.channel = self.mqConn.channel()
elif not self.mqConn.connected:
self.mqConn = amqp.Connection(host="localhost", userid="dev", password="dev", virtual_host="/", insist=False)
self.channel = self.mqConn.channel()
def sendMQ(self, message):
self.connect()
lMessage = amqp.Message(message)
self.channel.basic_publish(lMessage, exchange="DevMatrixE", routing_key="dev_matrix_q")
А потом в другом месте в моем коде я называю sendMQ («это мое сообщение»), а затем код продолжается. Мне не нужно слушать подтверждения и т. Д.
Не могли бы вы написать простой класс, используя pika и SelectConnection, которые также будут работать, чтобы просто отправить сообщение с помощью sendMQ («это мое сообщение»)? Я посмотрел примеры pika, но я не знаю, как обойти ioloop и KeyboardInterrupt. Думаю, я просто не знаю, как заставить мой код продолжать работать без всех этих попыток/исключений ... Кроме того, не совсем точно, как я могу передать свое сообщение через все обратные вызовы ...
Любая помощь оценивается!
Спасибо.
Отлично, что вы пытаетесь помочь, но он спрашивал о адаптере SelectConnection. В примерах, которые вы упомянули, используется BlockingConnection. – eandersson
Пример кода с помощью SelectConnection был бы более наглядным. – mprat