celery:获取队列中消息的位置为整数

时间:2014-11-25 06:36:01

标签: python rabbitmq celery

我有一个消息队列,对于从rabbitmq队列弹出的给定消息,我想从队列中得到Nth消息。如果有一个计数器可以告诉我在给定队列中该消息的位置编号,那将是很好的。

这样,如果多个工作人员从队列中提取消息,他们将获得每个消息的位置。工人1抓住了第29条消息,工人2抓住了第31条消息,工人3抓住了第30条消息等。

1 个答案:

答案 0 :(得分:1)

不,你也无法获得rabbitmq的任务位置。多个代理节点和工作人员可能已经预留了该消息,但由于预取而尚未开始处理该消息。

RabbitMQ不支持队列上的任何无序操作,因为它不适合传递语义的消息,并且难以大规模解决。

但是,当且仅当在一个频道中发布的消息通过一个交换机,一个队列和一个外出频道将按照它们发送的相同顺序接收时,才有可能保留消息的顺序。自2.7.0发布以来,RabbitMQ提供了更强大的保证。

来源:QuoraSO