猿问

回到首页 个人中心 反馈问题 注册登录
下载APP
首页 课程 实战 体系课 手记 专栏 慕课教程

RabbitMQ 业务失败产生的Unacked该如何处理?

https://img.mukewang.com/5b90ed720001d72f05950905.jpg

https://img.mukewang.com/5b90ed7e00016d0b04350154.jpg

代码第44行模拟了业务执行失败的场景,这条消息不会ack,在Queues中一直处于Unacked状态,直到我关闭控制台程序,它才会自动将所有的Unacked的消息全部切换成Ready(虽然不知道它是怎么实现的),从而保证,下一次重启消费端时可继续尝试消费那些"失败"的消息。

  那么问题来了,假如我实际业务中,消费端不重启,那么那些Unacked的消息就不会变成Ready状态,就得不到重新处理了,我应该怎么处理这些Unacked的消息?

  是不是应该在业务执行失败时,把这条消息存储到另一个队列Q2(专门处理业务失败的消息)同时ack当前队列(确保该消息不同时存在于当前队列和Q2队列,但是这里无法保证)。


慕标5832272
浏览 5372回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续