Rabbitmq阻塞连接以使用来自RabbitMQ的消息与使用阻塞连接从RabbitMQ获取消息

时间:2015-09-23 15:34:39

标签: python python-2.7 rabbitmq pika

我对使用rabbitmq's pika库的两种方法感到困惑。

第一个是Blocking consume
第二是Blocking basic_get
有人可以详细解释这些差异吗?

Blocking使用的不同之处在于,如果发送消息,消息会一直从队列中获取,而在basic_get中,我们可以控制更多消息何时从队列中获取消息?

1 个答案:

答案 0 :(得分:1)

是的,你是对的。

basic_get()

从RabbitMQ的角度来看,这是一个 pull 操作。 您可以在代码中随时检索消息。换句话说,这是一个顺序操作。你问的时候会收到一条消息。然后,客户端不会“自动”获取新消息。可以将其视为对REST API的常规调用。

bascic_consume()

从RabbitMQ的角度来看,这是一个推送操作。 你打开管道到服务器,并告诉RabbitMQ“嘿,一旦新的到来,发送给我”。这是一个非常强大的功能,可以提供更高的性能,允许您控制一次可以处理的消息数量,等等。