Nous avons des problèmes avec notre démon céleri très floconneux. Nous utilisons un script de déploiement de matrice pour redémarrer le démon chaque fois que nous appliquons des modifications, mais pour une raison quelconque, cela provoque des problèmes massifs.Problèmes avec le démon céleri
Chaque fois que le script de déploiement est exécuté, les processus de céleri sont laissés dans un état pseudo-mort. Ils vont (malheureusement) toujours consommer des tâches de rabbitmq, mais ils ne feront rien. Confusément une brève inspection indiquerait que tout semble "bien" dans cet état, le statut celeryctl montre un nœud en ligne et ps aux | grep céleri montre 2 processus en cours.
Cependant, en essayant d'exécuter /etc/init.d/celeryd arrêter les résultats manuellement dans l'erreur suivante:
start-stop-daemon: warning: failed to kill 30360: No such process
Dans cet état de tenter d'exécuter début celeryd semble fonctionner correctement, mais en fait ne rien. La seule façon de résoudre le problème consiste à supprimer manuellement les processus de céleri en cours d'exécution, puis à les redémarrer.
Des idées que se passe-t-il ici? Nous n'avons pas non plus de confirmation complète, mais nous pensons que le problème se développe également après quelques jours (sans activité c'est un serveur de test actuellement) par lui-même, sans déploiement.
Nous utilisons également un script de déploiement, mais pas avec fabric, nous exécutons simplement la commande shell celeryd restart à partir de python, et tout fonctionne correctement. Je connais quelques problèmes du script celeryd.sh avec la version olds d'ubuntu, inférieure à 10.10 à cause d'une instruction bash pour le processus get running. Sur quel système d'exploitation vous l'exécutez? Quelle version de céleri? –
Comment exactement votre script redémarre-t-il le démon? Est-ce juste en tirant un «kill -9» ou similaire? –
Il déclenche la commande d'arrêt du script init.d. C'est le script init.d inclus dans les fichiers github contrib de celery. Il avait l'habitude de déclencher le redémarrage au lieu de s'arrêter puis de commencer, mais j'ai changé cela comme tir dans le noir. Le script init.d appelle la commande start-stop-daemon – John