当员工关闭时,我会在RabbitMQ中向我的队列发布很多消息。 然后我开始我的工作人员,他从队列中获取所有消息,并且他工作正常,但是当我停止我的工作人员过程时,他会结束所有消息从队列中删除。 如果我开始第二个同样的工人,他没有消息。RabbitMQ在启动时从队列中取出一条消息
$channel->queue_declare($action, false, false, false, false);
$channel->basic_qos(null, 1, null);
$channel->basic_consume($action, '', false, true, false, false, $callback);
我可以做我的工作人员是如何发生的开始只有一个消息队列,从当工人停止,并开始他继续从队列中,他停止采取的消息?
它看起来不错,但我不知道现在我怎么能发回消息是完全消耗的信息。 –
@BartekPieczonka使用'bacic_ack'方法(对应于'basic.ack'命令)。 PHP库文档是..废话,但它是不同的客户端相同的原则。请参阅https://www.rabbitmq.com/tutorials/tutorial-two-php.html并注意'$ msg-> delivery_info ['channel'] - > basic_ack($ msg-> delivery_info ['delivery_tag']);' – user2864740
是的,现在很好,非常感谢!你太棒了。 –