使用rabbitmq ,如何获取指定消息前面有多少消息中排查中?

项目使用了 rabbitMQ 作为消息中间件,当请求比较多时,需要让用户知道前面有多少人在排队中,如何实现?

阅读 2.4k
2 个回答

首先设置Prefetch count预取数量为1 保证每次发送给消费者1条消息去处理

然后通过命令rabbitmqctl list_queues 即可以获取队列中等待处理的消息各种

rabbitmqctl list_queues同样提供REST API方式

参考这里 https://www.rabbitmq.com/rabb...

这你用个redis实现不就行了,先弄个消息总数,塞入消息你就+1,消费消息时你就-1,然后当用户开始排队时,记录当时消息总数{userid:msg:cnt},每消费一个消息,通过mq通知{userid:msg:cnt}数量-1,你要保证是顺序消费,这不就行了,可能极小概率会误差一两个,不过应该在业务可接受的范围内。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进