Способ разорвать связь от rabbitmq
У меня есть приложение, в котором есть ошибки. По какой-то причине 2 потребителя создаются, когда только один должен быть там - и один из них больше не проверяется на наличие сообщений.
Я могу обнаружить эту ситуацию, перечислив очереди и количество потребителей на сервере. Есть ли способ уничтожить этого потребителя со стороны сервера?
3 ответа
Вы можете разорвать соединения с брокером RabbitMQ, используя rabbitmqctl
инструмент (см. справочную страницу) или с помощью веб-интерфейса. Вы также можете очистить и удалить очередь, принадлежавшую мошенническому потребителю.
Тем не менее, вы не можете убить сам процесс потребителя, используя эти инструменты. Вы действительно должны сосредоточиться на исправлении ошибок в приложении, чтобы создавалось только правильное количество потребителей.
Потребитель может быть убит 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 []
RabbitMQ 3.5.4
Вам нужно пометить своего потребителя как «эксклюзивного». Тогда только один потребитель регистрируется в очереди, а другие потребители игнорируются, даже если они пытаются получить данные из этой очереди.