gpt4 book ai didi

python - SelectConnection无法连接到rabbitmq

转载 作者:行者123 更新时间:2023-12-01 07:37:06 28 4
gpt4 key购买 nike

我是Python编程新手,所以我尝试使用pika使用两个rabbitmq队列,但是使用SelectConnection会引发异常IndexError:元组索引超出范围 指定了无效的 channel 号,但如果我使用BlockingConnection,我就能够成功使用队列。一些信息:1 - 我正在使用 pika 网站异步示例2 - 我的 RabbitMQ 正在使用 docker hub 官方镜像中的 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()

我做错了什么?

最佳答案

您使用的是旧版本的文档,请参阅最新网站:

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

您需要添加on_open_callback:

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

否则第一个参数是 channel 号。

你也可以通过查看Pika的源码找到正确的用法:

https://github.com/pika/pika

这个问题将在 Pika 的下一个版本 1.1.0

中得到解决

关于python - SelectConnection无法连接到rabbitmq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56941914/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com