SelectConnection 不连接到 rabbitmq



我是 Python 编程的新手,所以我尝试使用 pika 使用两个 rabbitmq 队列,但使用SelectConnection会引发异常IndexError: tuple index out of rangeAn invalid channel number has been specified,但如果我使用BlockingConnection我能够成功使用队列。 一些信息: 1 - 我正在使用pika网站异步示例 2 - 我的 RabbitMQ 正在使用来自 docker 集线器官方映像的 docker 运行

这是我的代码:

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()

我做错了什么?

您使用的是旧版本的文档,请参阅latest站点:

https://pika.readthedocs.io/en/latest/examples.html

您需要添加on_open_callback

def on_open(connection):
channel = connection.channel(on_open_callback=on_channel_open)

否则,第一个参数是通道号。

您还可以通过查看 Pika 的源代码找到正确的用法:

https://github.com/pika/pika

这将在下一版本的 Pika 中解决,1.1.0

相关内容

  • 没有找到相关文章

最新更新