我正在尝试了解phpamqplib的未确认消息的行为。
我已将问题放在这里: https://gist.github.com/f2r/0632b651a3b27a2c189652b753f45e49
首次执行结果:
Queue: queue.test, message count: 4, consumer count: 0
Queue: queue.test, message count: 0, consumer count: 1
Message 1 => unknow
Message 2 => ack
Message 3 => ack
Message 4 => end
如您所见,在消费之前有4条消息,在消费之后(等待之前)恰好没有消息。此外,我的“未知”消息没有重新发送。
现在,如果我重新启动脚本,则结果如下:
Queue: queue.test, message count: 5, consumer count: 0
Queue: queue.test, message count: 0, consumer count: 1
Message 1 => unknow
*** redelivered
Message 1 => unknow
Message 2 => ack
Message 3 => ack
Message 4 => end
现在,我有5条消息,而我之前的“未确认”消息在这里。
问题:为什么在回叫(和ack / nack)之前消耗掉所有消息?
弗雷德里克