是否有与ZMQ的CONFLATE选项相当的RabbitMQ / pika?

时间:2018-05-01 17:50:39

标签: python rabbitmq messaging pika

我希望我的pub / sub只存储频道上的最后一条可用消息,并转储因消费者太慢(或暂停)而不会消耗的所有先前消息。 ZMQ有CONFLATE选项,但是RabbitMQ在Python(pika)上有类似的选项吗?

发布者以50Hz更新,而一些订阅者无法快速处理(10到50Hz之间)。我不希望他们处理队列中最旧的消息(这意味着处理已经过时的数据);它必须在准备好消费时才处理最后一条可用消息。

1 个答案:

答案 0 :(得分:0)

RabbitMQ实际上通过Maximum Queue Length feature支持开箱即用的场景。

来自文档:

  

队列的最大长度可以限制为设定数量的消息......在所有情况下,都使用就绪消息的数量;未确认的消息不计入限制。

     

当设置了最大队列长度或大小并达到最大值时,RabbitMQ的默认行为是从队列前面丢弃或写入死信(即队列中最旧的消息)。