芹菜:以整数形式获取消息在队列中的位置



我有一个消息队列,对于从 rabbitmq 队列中弹出的给定消息,我想从队列中获取第 N 条消息。如果某处有一个计数器能够告诉我此消息在给定队列中的位置编号是多少,那就太好了。

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

不,您也无法在 rabbitmq 中获取任务位置。多个代理节点,工作线程可能已经保留了消息,但由于预取而尚未开始处理它。

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

但是,当

且仅当在一个通道中发布的消息,通过一个交换、一个队列和一个传出通道的消息将以发送的相同顺序接收时,可以保留消息的顺序。 RabbitMQ 自 2.7.0 版本以来提供了更强大的保证。

资料来源:国劳,SO

相关内容

  • 没有找到相关文章