【问题标题】:Pika - Rabbitmq, using Basic.get to cosume single message from queuePika - Rabbitmq,使用 Basic.get 从队列中消费单个消息
【发布时间】:2015-09-26 16:39:16
【问题描述】:

我正在使用here 显示的方法,如下所示:
while method_frame is None: method_frame, header_frame, method_frame= channel.basic.get("test_queue)

看起来这种轮询方式不是那么有效,因为如果队列为空,基本 get 也可以工作,并带来空消息。

我需要一种只接收一条消息的逻辑,只有当我有机会处理它时,这就是我选择basic.get 而不是basic.consume 的原因。

是否有人有想法通过使用某些 pika 库的其他机制来进行更有效的轮询?

【问题讨论】:

    标签: python rabbitmq pika


    【解决方案1】:

    尝试使用 basic.consume(ack=true) 和 basic.qos(prefetch_count=1)。

    您需要了解如何使用您的特定库来做到这一点

    【讨论】:

    • 您好,能否详细解释一下它的含义,ack=True 以及什么是 basiq.qos(prefetch_count=1)?
    • 另外你知道pika库是怎么做的吗?
    • @JavaSa 这在 RabbitMQ 教程rabbitmq.com/tutorials/tutorial-two-python.html中有解释@
    • 另一件事,如果我想在多个消费者绑定到同一个队列时使用 basic_get 代替,并且我只希望一个人获取消息而不是所有消息,这可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多