Бывают ситуации, когда вам может понадобиться очистить или удалить все сообщения из очереди. Иногда вы также можете захотеть сделать это для всех очередей. Мы собираемся показать вам, как вы можете сделать обе эти вещи с помощью RabbitMQ.
Вы можете очистить или убрать очередь с помощью следующей команды:
1 | rabbitmqctl purge_queue queue1 |
Очистка очереди из веб-интерфейса
- Перейдите на вкладку Очереди.
- Нажмите на имя нужной вам очереди.
- Раскройте раздел "Очистка" (Purge).
- Нажмите кнопку "Очистить сообщения" (Purge Messages).
- Нажмите "OK".
RabbitMQ Очистить все очереди
Очистить все очереди довольно просто.
Скачиваем инструмент командной строки rabbitmqadmin
1 2 3 | wget https://raw.githubusercontent.com/rabbitmq/rabbitmq-server/master/deps/rabbitmq_management/bin/rabbitmqadmin -P /tmp chmod +x /tmp/rabbitmqadmin mv /tmp/rabbitmqadmin /usr/bin/ |
Сначала составьте список очередей. Вы можете отредактировать его, если решите, что не хотите удалять все очереди.
1 | rabbitmqadmin -f tsv -q list queues name > list1.txt |
Во-вторых, просто переберите все элементы в файле и передайте значение команде rabbitmqctl.
1 | for i in `cat list1.txt`; do rabbitmqctl purge_queue "$i"; done |
Дополнительная информация
Вам может понадобиться указать пользователя и пароль следующим образом:
1 | rabbitmqadmin --user guest --password SecretPassword1 -f tsv -q list queues name > list1.txt |
Вы также можете создать список очередей с помощью команды rabbitmqctl. Преимущества этого способа в том, что вам не нужно устанавливать rabbitmqadmin и не нужно указывать пароль (если он установлен) для запуска на одном хосте (по крайней мере, я этого не делал). Она генерирует несколько дополнительных строк вывода, которые нужно удалить из файла.
1 | rabbitmqctl list_queues name > list1.txt |