Publier plusieurs messages à partir d'un fichier RabbitMQ
La publication de messages à un RabbitMQ file d'attente peut être fait facilement avec l'INTERFACE utilisateur, en mettant simplement le message dans l'INTERFACE utilisateur et en cliquant sur "Publier le Message".
Comment faites vous pour publier un lot de messages?
J'ai un fichier avec l'envoi de messages à RabbitMQ. Chaque ligne a un message.
Comment puis-je publier tous les messages dans le fichier de mon serveur RabbitMQ?
Est-il un moyen de le faire en ligne de commande?
OriginalL'auteur summerbulb | 2015-11-02
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
rabbitmqadmin
outils cli:https://www.rabbitmq.com/management-cli.html
rabbitmqadmin publish exchange=amq.default routing_key=test payload="hello, world"
essayez de qch comme ceci:
while read line; do rabbitmqadmin publish exchange=amq.default routing_key=test payload="$line"; done < file
payload="$line"
de casser JSON \échappe comme{"foo": "\"nested quotes\""}
(parce que vous le shell interprète \échappe). Mais vous pouvez passer à charge pour rabbitmqadmin de stdin.Ouais, comme l'a noté il est malheureux que les
rabbitmqadmin
nécessite d'entrée de texte (en raison de l'entrée de la coquille), pour ne pas mentionner qu'il utilise l'api http pour la publication, de consommer, de sorte qu'il a tendance à être assez lent pour la plus grande utilisation.OriginalL'auteur aeryaguzov
À l'aide de rabbitmqadmin
Ne spécifiez pas le paramètre de charge utile à
rabbitmqadmin publish
signifie qu'il lit la charge utile à partir de stdin.OriginalL'auteur looseend
J'ai mis à jour rabbitmqadmin fichier de fichier de support de publication de contenu. Essayez de trouver la ligne contenant
EXTRA_VERBS = {
ainsi quedef invoke_publish(self):
et de mettre à jour leur code comme suitet
Supprimer
'populate/' +
à partir de la ligne suivante si vous souhaitez fournir un fichier à l'aide du chemin d'accès absolu.Sans mises à jour pour ouvrir(...) à la suite de la commande a fonctionné pour moi amende, en supposant que le fichier de règles.json a été placée dans le répertoire relatif "remplir"
OriginalL'auteur Keynash
vous pouvez utiliser curl et rabbitmq api:
ceci est un exemple d'un message, par analogie, vous pouvez écrire un script
OriginalL'auteur Oleg SH
Comme une variation de la réponse de looseend vous pouvez également utiliser GNU Parallèle
Cela va donner beaucoup de meilleures performances si vous avez un gros fichier.
Cela va fonctionner avec 100 emplois. Omettre d'accueil et les informations d'identification si pas nécessaire.
OriginalL'auteur Matt20013
Suffit d'utiliser amqp-outil:
OriginalL'auteur matagus