6

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

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

4

3 回答 3

8

rabbitmqctl您可以使用该工具(参见手册页)或使用Web UI终止与 RabbitMQ 代理的连接。您还可以清除和删除属于流氓消费者的队列。

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

于 2011-08-19T01:23:13.147 回答
8

可以rabbitmqctl使用close_connection输入杀死消费者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   []

兔MQ 3.5.4

于 2015-09-04T09:04:13.817 回答
0

您需要将您的消费者标记为“独家”。然后只有一个消费者注册到队列,而其他消费者即使尝试从该队列获取数据也会被忽略。

于 2021-10-28T05:03:27.097 回答