swoole 结合 rabbitmq 的默认交换机遇到了一个问题

2019-07-23 15:23:11 +08:00
 wo642436249

生产和消费 rabbitmq 的代码,基本完全是从 rabbitmq 教程官方中第二个教程中复制过来的,但是发现一个问题,当我做了持久化后,消费者没有确认消息后,消息虽然正常的被放回到 rabbitmq 中了,但是这条消息已经无法再次读取了,除非重启 swoole 进程。目前的解决方案是关闭该 mq 的通道,然后重新建立通道去监听 mq,但是这样做会导致内存占用不断升高。

3411 次点击
所在节点    PHP
2 条回复
suom
2019-07-24 01:47:36 +08:00
除非 channel 被关闭之类的,没有 ack 的任务是会一直被挂起的。
消息处理完 ack,发生异常时视情况 ack 或者 unack。
davidyanxw
2019-08-20 13:42:34 +08:00
unack 或者 reject,指定 requeue 参数。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/585458

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX