Python 3.6: Как создать потребителя pika с помощью адаптера SelectConnection без использования класса?
Я новичок в Python и Pika, и я сталкиваюсь с проблемами, потребляющими из очереди, используя адаптер BlockingConnection, который продолжает выдавать исключение через несколько часов.
Поэтому я сейчас пытаюсь использовать адаптер SelectConnection (Asynchronous), но я могу найти только примеры, которые используют этот тип адаптера в классе, и работа с кодом на основе классов в настоящее время немного выходит за рамки моего понимания.
Я нашел пример, который показывает, как создать производителя, используя SelectConnection, но я не могу найти пример для потребителя, который бесит меня, потому что я бы подумал, что на сайте pika будут представлены как основной производитель, так и потребитель, а не просто производитель...
Код производителя приведен ниже и взят с веб-сайта pika (почему я не включил пример для базового потребителя, это вне меня...): ( http://pika.readthedocs.io/en/latest/examples/comparing_publishing_sync_async.html)
import pika
# Step #3
def on_open(connection):
connection.channel(on_channel_open)
# Step #4
def on_channel_open(channel):
channel.basic_publish('test_exchange',
'test_routing_key',
'message body value',
pika.BasicProperties(content_type='text/plain',
delivery_mode=1))
connection.close()
# Step #1: Connect to RabbitMQ
parameters = pika.URLParameters('amqp://guest:guest@localhost:5672/%2F')
connection = pika.SelectConnection(parameters=parameters,
on_open_callback=on_open)
try:
Step #2 - Block on the IOLoop
connection.ioloop.start()
Catch a Keyboard Interrupt to make sure that the connection is closed cleanly
except KeyboardInterrupt:
# Gracefully close the connection
connection.close()
# Start the IOLoop again so Pika can communicate, it will stop on its own when the connection is closed
connection.ioloop.start()
Может ли кто-нибудь посоветовать, как я могу изменить этот код, чтобы он "потреблял", а не "производил", или вы можете указать мне на любые примеры, которые просто используют базовые функции, а не примеры на основе классов, которые я нашел много примеров, но они бесполезны для моей конкретной цели...
Спасибо. (как вы, возможно, поняли из тона моего вопроса, сейчас я немного переживаю, так как сейчас 4 часа утра, и я пытаюсь решить эту проблему часами!)
1 ответ
На случай, если это кому-нибудь поможет, и после того, как он много возится...
http://rabbitpy.readthedocs.io/
Гораздо проще и, кажется, очень быстро...