项目使用了 rabbitMQ 作为消息中间件,当请求比较多时,需要让用户知道前面有多少人在排队中,如何实现?
项目使用了 rabbitMQ 作为消息中间件,当请求比较多时,需要让用户知道前面有多少人在排队中,如何实现?
这你用个redis实现不就行了,先弄个消息总数,塞入消息你就+1,消费消息时你就-1,然后当用户开始排队时,记录当时消息总数{userid:msg:cnt}
,每消费一个消息,通过mq通知{userid:msg:cnt}
数量-1,你要保证是顺序消费,这不就行了,可能极小概率会误差一两个,不过应该在业务可接受的范围内。
1 回答760 阅读
537 阅读
首先设置Prefetch count预取数量为1 保证每次发送给消费者1条消息去处理
然后通过命令rabbitmqctl list_queues 即可以获取队列中等待处理的消息各种
rabbitmqctl list_queues同样提供REST API方式
参考这里 https://www.rabbitmq.com/rabb...