rabbit mq失败后怎么执行下一个队列
答案:2 悬赏:60 手机版
解决时间 2021-03-12 15:02
- 提问者网友:孤凫
- 2021-03-11 15:13
rabbit mq失败后怎么执行下一个队列
最佳答案
- 五星知识达人网友:空山清雨
- 2021-03-11 15:52
rabbit mq失败后怎么执行下一个队列
1、笨拙点方法,就是轮循,consume的阻塞监听可以设置timeout,通过设置一个较小的timeout,可以轮流监听几个channel,变相实现监听多个queue,对性能要求不是很高,可以使用这种方法
2、还有个办法就是先取出一个队列的消息数,然后循环的都读出后,转去读另一个队列,所有队列如果都没有消息了,就这样循环等待着
3、还有一个专业人士的回答,但是我还没有完全理解:
消费者(consumer)这是个业务层的概念,而消费或者说订阅(也就是 consume)是 AMQP 协议层的东西,所以,你问一个消费者能否订阅多个queue,答案是当然可以。方案也就一种,按照协议的流程分别向不同的 queue 进行 consume。至于是使用多线程方式来处理,还是使用事件驱动的方式(单线程)来处理这就取决于实现了。
如果对多线程控制能力不是很强,建议不要用这种方式,太专业了
4、这个问题后来我仔细想过,也许可以在应用层进行一下重新设计,可以用线程池作为多个consumer只读取出消息,不进行处理,然后publish进另一个队列,然后用由一个consumer来处理消息
1、笨拙点方法,就是轮循,consume的阻塞监听可以设置timeout,通过设置一个较小的timeout,可以轮流监听几个channel,变相实现监听多个queue,对性能要求不是很高,可以使用这种方法
2、还有个办法就是先取出一个队列的消息数,然后循环的都读出后,转去读另一个队列,所有队列如果都没有消息了,就这样循环等待着
3、还有一个专业人士的回答,但是我还没有完全理解:
消费者(consumer)这是个业务层的概念,而消费或者说订阅(也就是 consume)是 AMQP 协议层的东西,所以,你问一个消费者能否订阅多个queue,答案是当然可以。方案也就一种,按照协议的流程分别向不同的 queue 进行 consume。至于是使用多线程方式来处理,还是使用事件驱动的方式(单线程)来处理这就取决于实现了。
如果对多线程控制能力不是很强,建议不要用这种方式,太专业了
4、这个问题后来我仔细想过,也许可以在应用层进行一下重新设计,可以用线程池作为多个consumer只读取出消息,不进行处理,然后publish进另一个队列,然后用由一个consumer来处理消息
全部回答
- 1楼网友:玩家
- 2021-03-11 16:36
搜一下:rabbit mq失败后怎么执行下一个队列
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯