J'ai écrit une petite application Python qui fonctionne comme un démon. Elle utilise le threading et les files d'attente.
Je suis à la recherche d'approches générales pour modifier cette application afin de pouvoir communiquer avec elle pendant qu'elle est en cours d'exécution. J'aimerais surtout être en mesure de surveiller sa santé.
En bref, j'aimerais pouvoir faire quelque chose comme ceci :
python application.py start # launches the daemon
Plus tard, j'aimerais pouvoir venir et faire quelque chose comme.. :
python application.py check_queue_size # return info from the daemonized process
Pour être clair, je n'ai aucun problème à mettre en œuvre la syntaxe inspirée de Django. Ce que je ne sais pas du tout, c'est comment envoyer des signaux au processus démonisé (start), ou comment écrire le démon pour gérer et répondre à de tels signaux.
Comme je l'ai dit plus haut, je cherche des approches générales. La seule que je vois pour l'instant est de dire au démon d'enregistrer constamment dans un fichier tout ce qui pourrait être nécessaire, mais j'espère qu'il y a une façon moins désordonnée de procéder.
UPDATE : Wow, beaucoup de bonnes réponses. Merci beaucoup. Je pense que je vais examiner à la fois Pyro et les approches de web.py/Werkzeug, car Twisted est un peu plus que ce que je veux mordre à ce stade. Le prochain défi conceptuel, je suppose, est de savoir comment parler à mes threads de travail sans les suspendre.
Merci encore.