打破rabbitmq连接的方法

时间:2011-08-18 23:35:12

标签: rabbitmq consumer

我有一个有一些错误的应用程序。出于某种原因,当只有一个消费者应该在那里时,会创建2个消费者 - 并且其中一个消费者不再被检查消息。

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

2 个答案:

答案 0 :(得分:7)

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

但是,您无法使用这些工具终止使用者进程。你真的应该专注于修复应用程序中的错误,以便只创建正确数量的消费者。

答案 1 :(得分:5)

使用close_connection输入rabbitmqctl

,可以connectionpid杀死消费者

例如

> rabbitmqctl close_connection "<rabbit@hardys-Mac-mini.1.4195.0>" "reason here"

connectionpid可以通过

获取
> rabbitmqctl list_consumers

Listing consumers ...
send_email_1    <rabbit@hardys-Mac-mini.1.4185.0>   amq.ctag-oim8CCP2hsioWc-3WwS-qQ true    1   []
send_email_2    <rabbit@hardys-Mac-mini.1.4195.0>   amq.ctag-WxpxDglqZQN2FNShN4g7QA true    1   []

RabbitMQ 3.5.4