10
votes

Récupérer la longueur de la file d'attente avec le céleri (Rabbitmq, Django)

J'utilise le céleri dans un projet Django, mon courtier est Rabbitmq et je souhaite récupérer la longueur des files d'attente. J'ai traversé le code de céleri mais j'ai trouvé l'outil pour le faire. J'ai trouvé ce problème sur Stackoverflow ( Vérifier la taille de la file d'attente de la RabbitMQ du client ), mais Je ne trouve pas cela satisfaisant.

Tout est configuré dans le céleri, il devrait donc y avoir une sorte de méthode magique pour récupérer ce que je veux, sans spécifier de canal / connexion.

Quelqu'un a-t-il une idée de cette question?

merci!


0 commentaires

3 Réponses :


1
votes

Vous pouvez inspecter les travailleurs du céleri en utilisant le module Inspect . Voici le Guide . < / p>

Aussi pour rabbbitmq Il y a quelque Commande de ligne de commande .


3 commentaires

Merci pour votre réponse. Mais je n'ai pas besoin de commandes, j'ai besoin de classes ou de méthodes de python. De plus, la méthode d'inspection inspectera les travailleurs, pas les files d'attente, n'est-ce pas?


Inspectez Impossible de ne pas Récupérer la longueur de la file d'attente en attente comme je le sais. Peut être Inspecter réservé , mais dans mon expérience, cela n'aide pas aussi ..


En effet, la documentation officielle du célery indique que vous inspecter les files d'attente avec l'outil de ligne de commande rabbbitmqctl. C'est assez gênant lorsque la Rabbitmq circule sur une autre machine.



3
votes

pyrabbit est probablement ce que vous recherchez, c'est une interface python au Rabbitmq API d'interface de gestion. Cela vous permettra d'interroger les files d'attente et leurs comptes de messages actuels.


0 commentaires

4
votes

Voici un exemple sur la façon de lire la longueur de la file d'attente dans rabbbitmq pour une file d'attente donnée: xxx

ceci utilise pyrabbit comme précédemment suggéré par Philip


2 commentaires

Donc aucun moyen par le céleri comme c'est


@Fredericknord, pas que je sache. Ma compréhension est que les travailleurs (céleri) ne concernent que sa tâche actuelle ou, au plus, la tâche a pré-archivée (de lapbitmq). Il n'est pas au courant de ce qui est en rabbbitmq et intentionnellement.