Способ разорвать связь от rabbitmq - PullRequest
4 голосов
/ 19 августа 2011

У меня есть приложение, в котором есть ошибки.По какой-то причине 2 потребителя создаются, когда должен присутствовать только один - и один из них больше не проверяется на наличие сообщений.

Я могу определить эту ситуацию, перечислив очереди и количество потребителей на сервере.Есть ли способ уничтожить этого потребителя со стороны сервера?

Ответы [ 2 ]

7 голосов
/ 19 августа 2011

Вы можете разорвать соединения с брокером RabbitMQ с помощью инструмента rabbitmqctl (см. Справочную страницу ) или с помощью Web UI .Вы также можете очистить и удалить очередь, принадлежавшую мошенническому потребителю.

Однако вы не можете уничтожить сам процесс потребителя с помощью этих инструментов.Вы действительно должны сосредоточиться на исправлении ошибок в приложении, чтобы создавалось только правильное количество потребителей.

6 голосов
/ 04 сентября 2015

потребитель может быть убит rabbitmqctl, используя close_connection input 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

...