web-dev-qa-db-fra.com

Nettoyer la file d'attente rabbitmq

comment puis-je nettoyer (supprimer des messages) dans une file d'attente rabbitmq?
J'utilise Ubuntu 14.04 et rabbitmq-server 3.2.4-1

Exemple:

# rabbitmqctl list_queues -p openstack
Listing queues ...
...
notifications.info      372
...
3
user300177

Par exemple:

Sudo apt-get install amqp-tools
amqp-delete-queue -q name_from_queue

Dans ce lien, vous avez plus d'options: https://stackoverflow.com/questions/5313027/rabbitmq-how-do-i-delete-all-messages-from-a-single-queue

1
Julen Larrucea

existe-t-il un moyen de nettoyer la file d'attente sans la supprimer?

Oui; cela s'appelle purger la file d'attente et il y a beaucoup de façons de le faire.

En effet, en plus d’être quelque chose que l’on peut faire avec des outils tels que rabbitmqadmin pointé vers le courtier, il s’agit d’une opération accessible directement à partir du protocole. Ainsi, les utilisateurs peuvent écrire et avoir écrit des outils qui prennent les noms de files d'attente et appliquent la méthode _queue.purge_ contre eux, dans des langages aussi variés que C++ et Python.

Le paquetage amqp-utils d'Ubunt est un peu léger sur de tels outils, mais il n'est pas nécessaire de chercher très loin pour trouver des choses comme l'ensemble d'outils amqp-utils de Doug Barth écrit en Ruby et contenant un utilitaire _amqp-purge_.

La syntaxe rabbitmqadmin est la suivante:

file d'attente de purge rabbitmqadmin nom de file d'attente

Lectures complémentaires

1
JdeBP

S'il s'agit d'une action opérationnelle courante pour Rabbit, vous devez ajouter une action au charme juju afin qu'il soit facilement appelé à distance sans avoir à vous connecter au système. Juju veillerait également à ce que cela soit fait à un moment où rien ne se passait dans le système (du point de vue des opérations et du déploiement, évidemment).

0
Mark Shuttleworth