Question

J'ai une application Python qui est daemon et en cours d'exécution sur un serveur 24/7. Je voudrais être en mesure de donner une interface web incroyablement simple pour que je puisse suivre l'évolution des valeurs de quelques variables au sein du programme.

J'utilise Tornado, et je suis en cours d'exécution et avec le simple «Bonjour, monde que vous pouvez trouver sur

Était-ce utile?

La solution

Est-il possible d'utiliser le package threading et exécuter Tornado à l'intérieur de son propre fil?

Modifier

La documentation du module threading http://docs.python.org/library/threading.html a plus de détails, mais j'imagine quelque chose comme ceci:

import threading
t = threading.Thread(target = tornado.ioloop.IOLoop.instance().start)
t.start()

Faites-moi savoir si cela fonctionne!

Autres conseils

Je crois que le meilleur (lire: plus facile) approche serait d'avoir votre application démon écrire ces variables particulières que vous souhaitez surveiller sur un espacement partagé que votre application tornade accès peut. Cela pourrait être un fichier, une prise, une base de données, ou un magasin de valeur clé. Quelques idées d'idées qui viennent à l'esprit est d'utiliser votre base de données existante (si elle existe), SQLite, ou même memcached. Ensuite, vous simplement que votre demande de tornade lire ces valeurs de partout où vous les avez stockées.

Vous avez raison qu'une fois que vous exécutez la commande de tornade tornado.ioloop.IOLoop.instance().start() flux ne retourne jamais de cette boucle. À partir de là, le contrôle de votre application reste dans l'application et RequestHandlers que vous avez défini.

Une autre solution moins élégante serait de YAML utiliser pour sérialiser les objets périodiquement à partir de votre application principale, et avoir l'application Web que vous lisez les. Vous pouvez même jeter des objets dans YAML, pour que vous puissiez voir les différents états de ceux-ci.

Vous pouvez essayer d'utiliser http://www.zeromq.org/ comme un moyen de communication entre les deux processus / threads.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top