Est-il possible d'afficher le contenu des messages RabbitMQ directement à partir de la ligne de commande?
sudo rabbitmqctl list_queues
répertorie les files d'attente.
Y a-t-il une commande comme sudo rabbitmqctl list_queue_messages <queue_name>
?
rabbitmq
rabbitmqctl
rabbitmqadmin
Cisailles
la source
la source
Réponses:
Vous devez activer le plugin de gestion.
Vois ici:
http://www.rabbitmq.com/plugins.html
Et ici pour les spécificités de la gestion.
http://www.rabbitmq.com/management.html
Enfin, une fois configuré, vous devrez suivre les instructions ci-dessous pour installer et utiliser l'outil rabbitmqadmin. Qui peut être utilisé pour interagir pleinement avec le système. http://www.rabbitmq.com/management-cli.html
Par exemple:
vous donnera le premier message de la file d'attente.
la source
requeue=false
bit et le fairerabbitmqadmin get queue=<QueueName>
Voici les commandes que j'utilise pour obtenir le contenu de la file d'attente:
RabbitMQ version 3.1.5 sur Fedora Linux en utilisant https://www.rabbitmq.com/management-cli.html
Voici mes échanges:
Voici ma file d'attente:
Cramsez certains éléments dans ma file d'attente:
RabbitMQ voit les messages dans la file d'attente:
la source
sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
pour voir les messages ou pour retirer les messages de la fin, puis les remettre en file d'attente vers l'avant. Existe-t-il un moyen de simplement voir les messages au lieu de les extraire.rabbitmqadmin
connectez à l'API Web, sudo est-il nécessaire ici?requeue=True
J'ai écrit rabbitmq-dump-queue qui permet de vider les messages d'une file d'attente RabbitMQ vers des fichiers locaux et de remettre les messages dans leur ordre d'origine.
Exemple d'utilisation (pour vider les 50 premiers messages de la file d'attente
incoming_1
):la source
vous pouvez utiliser l'API RabbitMQ pour obtenir le nombre ou les messages:
Récupérez les messages d'une file d'attente. (Ce n'est pas un HTTP GET car cela modifiera l'état de la file d'attente.) Vous devriez publier un corps ressemblant à:
count contrôle le nombre maximum de messages à obtenir. Vous pouvez recevoir moins de messages que cela si la file d'attente ne peut pas les fournir immédiatement.
la file d'attente détermine si les messages seront supprimés de la file d'attente. Si la file d'attente est vraie, ils seront mis en file d'attente - mais leur indicateur de redélivrance sera défini. l'encodage doit être soit "auto" (auquel cas la charge utile sera renvoyée sous forme de chaîne si elle est valide UTF-8, et codée en base64 autrement), soit "base64" (auquel cas la charge utile sera toujours encodée en base64). Si truncate est présent, il tronquera la charge utile du message si elle est plus grande que la taille indiquée (en octets). truncate est facultatif; toutes les autres clés sont obligatoires.
Veuillez noter que les chemins de publication / récupération dans l'API HTTP sont destinés à injecter des messages de test, des diagnostics, etc. - ils n'implémentent pas une livraison fiable et doivent donc être traités comme un outil d'administrateur système plutôt qu'une API générale pour la messagerie.
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
la source
un peu tard, mais oui rabbitmq a un traceur intégré qui vous permet de voir les messages entrants dans un journal. Lorsqu'elle est activée, vous pouvez simplement
tail -f /var/tmp/rabbitmq-tracing/.log
(sur mac) regarder les messages.la description détaillée est ici http://www.mikeobrien.net/blog/tracing-rabbitmq-messages
la source
Si vous voulez plusieurs messages d'une file d'attente, disons 10 messages, la commande à utiliser est:
Si vous ne voulez pas que les messages soient mis en file d'attente, changez simplement
ackmode
enack_requeue_false
.la source