Я новичок в программировании на Python, поэтому я пытаюсь использовать две очереди rabbitmq, используя pika, но использование SelectConnection
вызывает исключение IndexError: tuple index out of range
An invalid channel number has been specified
, но если я использую BlockingConnection
, я могу успешно потреблять очередь.
Некоторая информация:
1 - я использую пример асинхронного сайта Пика
2 - Мой RabbitMQ работает с докером из док-станции. Официальное изображение
Вот мой код:
import pika
if __name__ == '__main__':
def callback(channel, method, properties, body):
print(body)
channel.basic_ack(delivery_tag=method.delivery_tag)
def on_open(connection):
channel = connection.channel(on_channel_open)
def on_channel_open(channel):
print("on channel open")
channel.basic_consume(callback, queue='hello')
channel.basic_consume(callback, queue='poc')
parameters = pika.URLParameters('amqp://guest:guest@localhost:5672/%2F')
connection = pika.SelectConnection(parameters=parameters,on_open_callback=on_open)
try:
connection.ioloop.start()
except KeyboardInterrupt:
connection.close()
Что я делаю не так?