Rabbitmq 有没有办法让Pika BlockingConnection一次消费一条消息?

Rabbitmq 有没有办法让Pika BlockingConnection一次消费一条消息?,rabbitmq,pika,Rabbitmq,Pika,这是我用来使用消息的代码。问题是,假设我在test队列中有100条消息。一旦我启动消费者,它将获取所有100条消息并逐个处理,即队列状态变为:message ready:0,unacked:100,total:100。因此,我无法启动新的消费者来并行处理100条消息,因为没有留给新消费者的消息(所有消息都已被现有消费者接收,尽管大多数消息尚未处理)。有没有办法让消费者一次只接收一条消息?您需要指定频道所需的消息 在您的情况下,prefetch\u count是您需要的参数 import pika

这是我用来使用消息的代码。问题是,假设我在
test
队列中有100条消息。一旦我启动消费者,它将获取所有100条消息并逐个处理,即队列状态变为:message ready:0,unacked:100,total:100。因此,我无法启动新的消费者来并行处理100条消息,因为没有留给新消费者的消息(所有消息都已被现有消费者接收,尽管大多数消息尚未处理)。有没有办法让消费者一次只接收一条消息?

您需要指定频道所需的消息

在您的情况下,
prefetch\u count
是您需要的参数

import pika

params = pika.URLParameters([URL])
connection = pika.BlockingConnection(params)
channel = connection.channel()
channel.queue_declare(queue='test', durable=True)
channel.basic_consume(do_things, queue='test')

try:
    channel.start_consuming()
except KeyboardInterrupt:
    channel.stop_consuming()
except:
    rollbar.report_exc_info()
finally:
    channel.close()
    connection.close()
您需要指定频道所需的

在您的情况下,
prefetch\u count
是您需要的参数

import pika

params = pika.URLParameters([URL])
connection = pika.BlockingConnection(params)
channel = connection.channel()
channel.queue_declare(queue='test', durable=True)
channel.basic_consume(do_things, queue='test')

try:
    channel.start_consuming()
except KeyboardInterrupt:
    channel.stop_consuming()
except:
    rollbar.report_exc_info()
finally:
    channel.close()
    connection.close()