生产和消费 rabbitmq 的代码,基本完全是从 rabbitmq 教程官方中第二个教程中复制过来的,但是发现一个问题,当我做了持久化后,消费者没有确认消息后,消息虽然正常的被放回到 rabbitmq 中了,但是这条消息已经无法再次读取了,除非重启 swoole 进程。目前的解决方案是关闭该 mq 的通道,然后重新建立通道去监听 mq,但是这样做会导致内存占用不断升高。
1
suom 2019-07-24 01:47:36 +08:00
除非 channel 被关闭之类的,没有 ack 的任务是会一直被挂起的。
消息处理完 ack,发生异常时视情况 ack 或者 unack。 |
2
davidyanxw 2019-08-20 13:42:34 +08:00
unack 或者 reject,指定 requeue 参数。
|