2011-08-18 393 views
2

我有一个应用程序有一些错误。出于某种原因,只有一个应用程序在那里时才会创建2个消费者 - 并且其中一个消费者不再检查消息。从rabbitmq断开连接的方式

我可以通过列出服务器上的队列和使用者数量来检测这种情况。有没有办法从服务器端摧毁该消费者?

回答

4

使用rabbitmqctl工具(请参阅man page)或使用Web UI可以终止与RabbitMQ代理的连接。您还可以清除和删除属于流氓用户的队列。

但是,您不能使用这些工具杀死使用者进程本身。你真的应该只关注于修复应用程序中的错误,以便只有正确数量的消费者被创建。

+0

但这并工作得到被杀死,差不多。出于某种原因,有两个消费者,但只有一个连接分配给其中一个连接。另一个消费者只是......存在。现在寻找这种情况的解释。 – viraptor

+0

不知道...如果你重新启动你的经纪人,问题依然存在吗? –

1

消费者可以通过使用rabbitmqctl输入close_connectionconnectionpid

例如

> rabbitmqctl close_connection "<r[email protected]>" "reason here" 

connectionpid可以通过

> rabbitmqctl list_consumers 

Listing consumers ... 
send_email_1 <[email protected]> amq.ctag-oim8CCP2hsioWc-3WwS-qQ true 1 [] 
send_email_2 <[email protected]> amq.ctag-WxpxDglqZQN2FNShN4g7QA true 1 [] 

的RabbitMQ 3.5.4