我有一个有一些错误的应用程序。出于某种原因,当只有一个消费者应该在那里时,会创建2个消费者 - 并且其中一个消费者不再被检查消息。
我可以通过列出服务器上的队列和使用者数量来检测这种情况。有没有办法从服务器端销毁该消费者?
答案 0 :(得分:7)
您可以使用rabbitmqctl
工具(请参阅man page)或使用Web UI来终止与RabbitMQ代理的连接。您还可以清除和删除属于流氓消费者的队列。
但是,您无法使用这些工具终止使用者进程。你真的应该专注于修复应用程序中的错误,以便只创建正确数量的消费者。
答案 1 :(得分:5)
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