Instalé rabbitmqadminy pude enumerar todos los intercambios y colas. ¿Cómo puedo usar rabbitmqadmino rabbitmqctleliminar todas las colas?
rabbitmq
rabbitmqctl
Cory
fuente
fuente

rabbitmqctl list_queues name messages messages_ready \ messages_unacknowledgedrabbitmqctl list_queues | grep 0 | awk '{print $1}' | xargs -I qn rabbitmqadmin delete queue name=qngrep $'\t0'o algo.Con
rabbitmqadminusted puede eliminarlos con este one-liner:fuente
egrep, por lo que mi comando se verá así:rabbitmqadmin -f tsv -q list queues name | egrep "%search word%" | while read queue; do rabbitmqadmin -q delete queue name=${queue}; doneRealmente súper fácil con plugins de administración y políticas:
Goto Management Console (localhost: 15672)
Ir a la pestaña Admin
Ir a la pestaña Políticas (en el lado derecho)
Agregar política
Rellenar campos
Salvar
fuente
Prueba esto:
fuente
*** Not found: /api/queues/%2F/nameporque el resultado es una tabla ASCII con una columna "nombre". Modifiqué el comandorabbitmqadmin list queues name | awk '!/--|name/ {print $2}' | xargs -I qn rabbitmqadmin delete queue name=qnpara arreglarlo.rabbitmqadmin list queues name | awk {'print$2'} | egrep [^name] | xargs -I qname rabbitmqadmin delete queue name=qnameSi no tiene rabbitmqadmin instalado, intente purgar las colas con rabbitmqctl:
rabbitmqctl list_queues | awk '{ print $1 }' | xargs -L1 rabbitmqctl purge_queuefuente
delete_queuenipurge_queuecomandos enrabbitmqctl. Me gustaría eliminar muchas colas que parecen generarse automáticamente y no me gustaría instalar software adicional comorabbitmqadmin...rabbitmqctl purge_queueTrabajó aquí manualmente. Solo necesitaba agregar -p <virtual-host>delete_queueypurge_queueestán disponibles enrabbitmqctly acabo de ejecutar con éxito. Quizás estés en una versión antigua.Si está tratando de eliminar colas porque no se utilizan y no desea restablecer, una opción es establecer el TTL de cola muy bajo a través de una política, espere a que las colas se eliminen automáticamente una vez que se pasa el TTL y luego elimine la política ( https://www.rabbitmq.com/ttl.html ).
Para eliminar la política
Tenga en cuenta que esto solo funciona para colas no utilizadas
Información original aquí: http://rabbitmq.1065348.n5.nabble.com/Deleting-all-queues-in-rabbitmq-td30933.html
fuente
Hice un deleteRabbitMqQs.sh, que acepta argumentos para buscar en la lista de colas, seleccionando solo los que coinciden con el patrón que desea. Si no ofrece argumentos, los eliminará a todos. Le muestra la lista de colas que está a punto de eliminar, permitiéndole salir antes de hacer algo destructivo.
Si desea una coincidencia diferente con los argumentos que pasa, puede alterar el grep en la línea cuatro. Al eliminar todas las colas, no eliminará las que tengan tres espacios consecutivos en ellas, porque pensé que la eventualidad sería más rara que las personas que tienen rabbitmqctl imprimiendo su salida en diferentes idiomas.
¡Disfrutar!
fuente
En Rabbit versión 3.7.10 puede ejecutar el siguiente comando con permiso de root:
fuente
Aquí hay una manera de hacerlo con PowerShell. la URL puede necesitar ser actualizada
fuente
Puede usar rabbitmqctl eval de la siguiente manera:
Lo anterior eliminará todas las colas vacías en todos los vhosts que tengan un nombre que comience con "prefijo-". Puede editar las variables IfUnused, IfEmpty y MatchRegex según sus requisitos.
fuente
rabbitmqadminno es accesible.Eliminando todas las colas usando rabbitmqctl one liner
fuente
En caso de que solo desee purgar las colas que no están vacías (mucho más rápido):
Para mí, me toma 2-3 segundos purgar una cola (tanto vacías como no vacías), por lo que iterar a través de 50 colas es un dolor, mientras que solo necesito purgar 10 de ellas (40/50 están vacías).
fuente
Intenté los comandos rabbitmqctl y reset pero son muy lentos.
Esta es la forma más rápida que encontré (reemplace su nombre de usuario y contraseña):
Nota: Esto solo funciona con el vhost / default
fuente
Para enumerar colas,
Para eliminar una cola,
fuente
Aquí hay una versión más rápida (usando
parallelinstall sudo apt-get install parallel) ampliando la excelente respuesta de @admenvaparallel -j 50 rabbitmqadmin -H YOUR_HOST_OR_LOCALHOST -q delete queue name={} ::: $(rabbitmqadmin -H YOUR_HOST_OR_LOCALHOST -f tsv -q list queues name)fuente
Este comando elimina todas tus colas
Este script es súper simple porque usa
-f bash, que genera las colas como una lista.Luego usamos
xargs -n1para dividir eso en múltiples variablesLuego usamos
xargs -I{}que ejecutará el siguiente comando y lo reemplazaremos{}en el comando.fuente
http://yourhost:15672/cli/y descargarlo.No necesita restablecer el servidor rabbitmq para eliminar colas no duraderas . Simplemente detenga el servidor y comience de nuevo y eliminará todas las colas no duraderas disponibles.
fuente
Para aquellos que tienen un problema con la instalación de rabbitmqadmin, primero debe instalar python.
Los usuarios de sistemas operativos tipo UNIX necesitan copiar rabbitmqadmin a un directorio en PATH, por ejemplo / usr / local / bin.
Los usuarios de Windows deberán asegurarse de que Python esté en su RUTA e invocar rabbitmqadmin como python.exe rabbitmqadmin.
Luego
http://{hostname}:15672/cli/rabbitmqadminpara descargar.Para enumerar colas
python rabbitmqadmin list queues.Para eliminar la cola
python rabbitmqadmin delete queue name=Name_of_queuePara eliminar todas las colas
1- Declarar política
2- Eliminar la política
fuente
Hay una manera de eliminar todas las colas e intercambios sin scripts y reinicio completo. Simplemente puede eliminar y volver a crear un host virtual desde la interfaz de administración. Esto funcionará incluso para vhost
/.Lo único que necesitará restaurar son los permisos para el vhost recién creado.
fuente
De acuerdo, calificador importante para esta respuesta: la pregunta pide usar rabbitmqctl O rabbitmqadmin para resolver esto, mi respuesta necesitaba usar ambos. Además, tenga en cuenta que esto se probó en MacOS 10.12.6 y las versiones de rabbitmqctl y rabbitmqadmin que se instalan al instalar rabbitmq con Homebrew y que se identifica
brew list --versionscomo rabbitmq 3.7.0rabbitmqctl list_queues -p <VIRTUAL_HOSTNAME> name | sed 1,2d | xargs -I qname rabbitmqadmin --vhost <VIRTUAL_HOSTNAME> delete queue name=qnamefuente
Otra opción es eliminar el vhost asociado con las colas. Esto eliminará todo lo relacionado con el vhost, así que ten cuidado, pero es fácil y rápido.
NOTA: el equipo de RabbitMQ supervisa la
rabbitmq-userslista de correo y solo a veces responde preguntas sobre StackOverflow.fuente
Probé las piezas de código anteriores pero no hice ninguna transmisión.
sudo rabbitmqctl list_queues | awk '{print $1}' > queues.txt; for line in $(cat queues.txt); do sudo rabbitmqctl delete_queue "$line"; done.Genero un archivo que contiene todos los nombres de la cola y los recorre línea por línea para eliminarlos. Para los bucles,
while read ...no lo hizo por mí. Siempre se detenía en el primer nombre de la cola.fuente
fuente