Symfony 重新传递未确认的RabbitMQ消息

Symfony 重新传递未确认的RabbitMQ消息,symfony,rabbitmq,Symfony,Rabbitmq,我在一个队列中有两条未确认的消息,需要重新发送。我做了一项研究,发现我需要使用basic.recover或basic.nack,但是我真的不知道如何使用它们,因为我的RabbitMQ知识已经有一天了。有人能告诉我如何使用这些选项吗?我找不到任何例子 注意:可能与此无关,但我正在MAC OSX上使用带RabbitMqBundle的Symfony2应用程序 $ rabbitmqctl list_queues name messages_ready messages_unacknowledged Li

我在一个队列中有两条未确认的消息,需要重新发送。我做了一项研究,发现我需要使用
basic.recover
basic.nack
,但是我真的不知道如何使用它们,因为我的RabbitMQ知识已经有一天了。有人能告诉我如何使用这些选项吗?我找不到任何例子

注意:可能与此无关,但我正在MAC OSX上使用带RabbitMqBundle的Symfony2应用程序

$ rabbitmqctl list_queues name messages_ready messages_unacknowledged
Listing queues ...
order_create_qu 0   2
我读过很多文章,但除了重新启动服务器外,我并没有真正了解如何使用建议的解决方案


未确认的消息将保持未确认状态,直到接收到它们的消费者拒绝或确认该消息,或者连接/通道已关闭

当连接/通道断开时,Rabbitmq假定这些消息未被处理,因此它们可以传递给另一个使用者


为了防止将来发生这种情况,在使用者中应该有一些逻辑,如果使用者不处理消息,就拒绝/拒绝消息,和/或有一些逻辑正确地关闭到rabbitmq的连接/通道。

解决方案似乎非常简单。如果关闭具有未确认消息的连接,消息将传递到其他连接并获取进程。在我的例子中,手动关闭连接53191解决了问题

。。。。但该消费者尚未关闭其最初接收它们的频道或连接


事实上,我注意到了上面的提示,在这里的公认答案中提到了这一点:

你解释了它是什么以及它为什么会发生,这是我已经知道的,但没有真正回答我的问题。