我正在尝试使用 pika 来获取我的 RabbitMQ 队列中的项目数。我有以下运行:

params = pika.ConnectionParameters(host='my.host.com', port=5672, credentials=pika.credentials.PlainCredentials('myuser', 'myauth'))
connection = pika.BlockingConnection(parameters=params)
channel = connection.channel()
response = channel.queue_declare(passive=True, queue='my-queue-name')
count = response.method.message_count
channel.close()
print response

当我运行它时,无论队列中有多少项目,count 始终为 0。我可以看到带有 rabbitmqctl 的项目,但我的脚本不会显示它们。我在这里做错了什么?

最佳答案

现在回答可能为时已晚,但我刚刚面临几乎相同的问题。我需要对队列的发布者一侧进行一些限制,我决定定期检查队列大小以减慢处理速度。但是当我提到消费者队列的末尾时,pika 的 queue_declare(..., passive=True).method.message_count 开始报告为零。经过一段时间的测试和浏览代码/示例后,我发现设置 channel.basic_qos(prefetch_count=1) 可以解决问题。希望这可以帮助。

关于python - pika 始终显示 RabbitMQ 队列大小为 0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45090855/

10-12 22:11