Si no le importan los datos de la base de datos de gestión; es decir users
, vhosts
, messages
etc., y ni de otro queues
, entonces se puede reset
a través de comandos ejecutando los siguientes comandos en orden:
ADVERTENCIA: Además de las colas, esto también eliminará cualquier users
y vhosts
que haya configurado en su servidor RabbitMQ; y eliminará cualquier persistentemessages
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
La documentación de rabbitmq dice que el reset
comando:
Devuelve un nodo RabbitMQ a su estado virgen.
Elimina el nodo de cualquier clúster al que pertenece, elimina todos los datos de la base de datos de administración, como los usuarios configurados y vhosts, y elimina todos los mensajes persistentes.
Por lo tanto, tenga cuidado al usarlo.
Instale el paquete pika de la siguiente manera
La instalación depende de los paquetes pip y git-core, es posible que deba instalarlos primero.
En Ubuntu:
En Debian:
En Windows: para instalar easy_install, ejecute MS Windows Installer para herramientas de configuración
fuente
En las versiones de RabbitMQ> 3.0, también puede utilizar la API HTTP si el complemento rabbitmq_management está habilitado. Solo asegúrese de establecer el tipo de contenido en 'application / json' y proporcione el vhost y el nombre de la cola:
IE Usando curl con un vhost 'test' y un nombre de cola 'testqueue':
fuente
administrator
que de lo contrario no podrá utilizar determinadas partes de la API.$ curl -i -u 'user:pass' -H "content-type:application/json" -XDELETE 'http://localhost:15672/api/queues/vhostname/name.portal' HTTP/1.1 204 No Content Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact) Date: Wed, 30 Jul 2014 11:23:47 GMT Content-Type: application/json Content-Length: 0
Sin embargo, la cola aún permanece :( - ¿Hay rabbitmqadmin que es bueno para trabajar desde la consola.
Si ssh / inicia sesión en el servidor donde tiene Rabbit instalado, puede descargarlo desde:
y guárdelo en / usr / local / bin / rabbitmqadmin
Entonces puedes correr
Por lo general, requiere sudo.
Si desea evitar escribir su nombre de usuario y contraseña, puede usar config
Todo eso bajo el supuesto de que tiene el archivo ** /var/lib/rabbitmq/.rabbitmqadmin.conf** y tiene un mínimo mínimo
EDITAR: A partir del comentario de @ user299709, podría ser útil señalar que el usuario debe estar etiquetado como 'administrador' en rabbit. ( https://www.rabbitmq.com/management.html )
fuente
Un breve resumen para la eliminación rápida de la cola con todos los valores predeterminados del host que ejecuta el servidor RMQ:
Para eliminar todas las colas que coinciden con un patrón en un vhost dado (por ejemplo, que contienen 'amq.gen' en el vhost raíz):
fuente
Usted afirma que existe una cola (y la crea si no existe) utilizando queue.declare . Si originalmente configuró la eliminación automática en falso, volver a llamar a queue.declare con autodelete verdadero dará como resultado un error leve y el corredor cerrará el canal.
Debe usar queue.delete ahora para eliminarlo.
Consulte la documentación de la API para obtener más detalles:
Si usa otro cliente, deberá encontrar el método equivalente. Dado que es parte del protocolo, debería estar allí, y probablemente sea parte de Channel o su equivalente.
Es posible que también desee echar un vistazo al resto de la documentación, en particular, la Guía de inicio sección , que cubre muchos casos de uso comunes.
Finalmente, si tiene una pregunta y no puede encontrar la respuesta en otro lugar, debería intentar publicarla en la lista de distribución de RabbitMQ Discuss . Los desarrolladores hacen todo lo posible para responder a todas las preguntas que se hacen allí.
fuente
Otra opción sería habilitar management_plugin y conectarse a él a través de un navegador. Puede ver todas las colas e información sobre ellas. Es posible y sencillo eliminar las colas de esta interfaz.
fuente
He generalizado un poco más el método JavaScript / jQuery de Piotr Stapp, encapsulándolo en una función y generalizándolo un poco.
Esta función utiliza la API HTTP de RabbitMQ para consultar las colas disponibles en un determinado
vhost
y luego eliminarlas según un opcionalqueuePrefix
:Una vez que pegue esta función en la consola de JavaScript de su navegador mientras está en su página de administración de RabbitMQ, puede usarla así:
Eliminar todas las colas en '/' vhost
Elimine todas las colas en '/' vhost que comienzan con 'prueba'
Elimina todas las colas en 'dev' vhost que comienzan con 'foo'
¡Utilice esto bajo su propio riesgo!
fuente
El complemento de administración (interfaz web) le brinda un enlace a un script de Python. Puede usarlo para eliminar colas. Usé este patrón para eliminar muchas colas:
fuente
Yo uso este alias en
.profile
:donde
qclean.py
tiene el siguiente código:Esencialmente, esta es una versión iterativa del código de Shweta B. Patil.
fuente
Instalar en pc
y vaya a http: // localhost: 15672 / # / queues si está utilizando localhost. la contraseña predeterminada será
username: guest
,password: guest
vaya a la pestaña de colas y elimine la cola.fuente
Con suerte, podría ayudar a alguien.
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 las colas y lo recorro línea por línea para eliminarlos. Para los bucles
while read ...
no lo hice por mí. Siempre se detenía en el primer nombre de la cola.Además, si desea eliminar una sola cola, las soluciones anteriores ayudarán (python, Java ...) y también
do sudo rabbitmqctl delete_queue queue_name
. Estoy usando enrabbitmqctl
lugar derabbitmqadmin
.fuente
Con el complemento rabbitmq_management instalado, puede ejecutar esto para eliminar todas las colas no deseadas:
Analicemos el comando:
rabbitmqctl list_queues -p vhost_name
enumerará todas las colas y cuántas tareas tienen actualmente.grep -v "fast\|medium\|slow"
filtrará las colas que no desea eliminar, digamos que queremos eliminar todas las colas sin las palabras rápido , medio o lento .tr "[:blank:]" " "
normalizará el delimitador en rabbitmqctl entre el nombre de la cola y la cantidad de tareas que haycut -d " " -f 1
se divide cada línea por el espacio en blanco y recoger la primera columna (el nombre de la cola)xargs -I {} curl -i -u guest:guest -H "content-type:application/json" -XDELETE http://localhost:15672/api/queues/<vhost>/{}
recogerá el nombre de la cola y lo colocará en el lugar donde configuramos el{}
carácter eliminando todas las colas no filtradas en el proceso.Asegúrese de que el usuario utilizado tenga permisos de administrador.
fuente
Lo hice de otra manera, porque solo tenía acceso a la página web de administración. Creé un "fragmento" simple que elimina las colas en Javascript. Aquí está:
Todas mis colas estaban en formato: PREFIX_0001 a PREFIX_0XXX
fuente