2011-06-27 7 views
7

Je commence avec Celery pour un projet Django. Pour des raisons de développement local, je l'ai configuré avec djcelery et djkombu (transport de base de données), en suivant ces instructions http://ask.github.com/celery/tutorials/otherqueues.html#django-database, mais je prévois d'utiliser rabbitmq sur le serveur de production. J'ai trouvé que cela fonctionne mais qu'un ou plusieurs des travailleurs vont pendre au hasard. Les travailleurs se concentrent sur des tâches différentes, il n'est donc pas possible qu'une tâche particulière entre dans une boucle infinie. Quand j'essaie d'éteindre le céleri, je vois habituellement tous les ouvriers qui sortent, sauf un. J'ai essayé d'utiliser celeryctl pour obtenir des informations sur les travailleurs, avant et après le blocage d'un worker, mais celeryctl échoue toujours avec un message "Erreur: Aucun nœud n'a répondu dans les limites de temps." ". J'ai également essayé d'inspecter les travailleurs http://docs.celeryproject.org/en/latest/userguide/workers.html#inspecting-workers mais toutes les méthodes ne retournent rien.Comment diagnostiquer les travailleurs céleri qui se bloque

Toutes les idées sur la façon de diagnostiquer ce qui provoque le travailleur à accrocher ou serait utile.

+0

céleri première manche sur la coque avec le niveau DEBUG celeryd -l DEBUG. Lorsque vous redémarrez le céleri ou l'arrêtez, l'éditeur de pool qui exécute une tâche n'est pas redémarré tant que la tâche n'est pas terminée, il s'agit d'un comportement normal. Bien sûr, il n'est pas normal que vos tâches soient bloquées au hasard. Cela ne m'est jamais arrivé avec Rabbit MQ, Peut-être possible que ce soit quelque chose lié à des verrous de DB ou de connexion .. Vous utilisez MYSQL InnoDB? Aniway je suggère fortement un courtier au lieu de db transport –

+0

Quelle version utilisez-vous? – asksol

Répondre

1

J'avais le même problème. Je pense que c'est parce que vous utilisez ghettoq qui ne supporte pas les événements.

Selon demander:

remote control commands (broadcast) and events does not work with ghettoq.

Questions connexes