我正在使用RabbitMQ和PHP react \ stomp。我有两个队列 - 一个是" todo"其他是"完成"。消费者从" todo"中读取,完成其工作,确认消息,然后将其发布到"完成"队列中。
有没有办法确保我只消费来自" todo" (并单独确认)然后退出?主要原因是我们不希望长时间运行消费者,我们希望在N消息之后重新启动它们。
答案 0 :(得分:1)
您可以为目的地设置预取计数:
所有订阅的预取计数都设置为unlimited 默认。这可以通过设置prefetch-count标头来控制 在SUBSCRIBE帧上到所需的整数计数。
https://www.rabbitmq.com/stomp.html
因此,要仅消费十条消息,请添加标题
prefetch-count:10
到SUBSCRIBE
框架。
您可以将ack模式设置为client-individual
,以便逐条消息手动确认。