如果队列达到限制,Pika python等待RabbitMQ Publisher

时间:2018-06-05 08:17:39

标签: python rabbitmq pika

我有一个场景,一个python脚本将发布让我们说150k消息,每条消息大小最大10kb。然后我将队列限制设置为最大5000消息。然后,发布者将消息发布到队列中,直到达到限制5000消息。然后,消费者将尝试使用该消息。

我想问的是,如果队列已满,发布者是否可以等待发布消息?不丢弃消息。将再次检查队列是否可用,然后发布者将发布数据。

1 个答案:

答案 0 :(得分:2)

RabbitMQ团队监控the rabbitmq-users mailing list,有时只回答StackOverflow上的问题。

如果您使用的是iscent RabbitMQ版本(例如3.7.5),则可以将overflow behavior设置为reject-publish。然后,在您的代码中,使用channel_instance.confirm_delivery()方法启用发布商确认。最后,当达到队列限制时,basic.nack消息将被发送回您的代码,并将引发您可以捕获的NackError异常。