Я пытаюсь преобразовать свой код для отправки сообщений rabbitmq через Pika. У меня много проблем с пониманием того, как отправить простое сообщение с использованием асинхронного соединения (например, SelectConnection).
В моем старом коде, в котором я использую библиотеку 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. Я думаю, я просто не уверен, как заставить мой код продолжать работать без всех этих попыток/исключений... Кроме того, я не совсем уверен, как я могу передать свое сообщение через все обратные вызовы...
Любая помощь приветствуется!
Спасибо.