Frage

Ich habe eine Python-Anwendung, die auf einem Server 24/7 daemonisierte ist und läuft. Ich möchte eine unglaublich einfache Web-Schnittstelle in der Lage sein zu geben, damit ich die wechselnden Werte von einigen Variablen innerhalb des Programms überwachen.

Ich bin mit Tornado, und ich bin und läuft mit dem einfachen ‚Hallo, Welt‘, dass Sie auf der

War es hilfreich?

Lösung

Ist es möglich, das threading Paket zu verwenden und Tornado innerhalb seines eigenen Thread laufen?

Edit:

Die threading Modul Dokumentation unter http://docs.python.org/library/threading.html mehr Details, aber ich stelle mir vor, etwas wie folgt aus:

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

Lassen Sie mich wissen, ob das funktioniert!

Andere Tipps

Ich glaube, dass die besten (sprich: am einfachsten) Ansatz Ihre Daemon App schreiben diese bestimmten Variablen, die Sie zu einem gemeinsamen Abstand, dass Ihre Tornado App kann den Zugang überwachen wollen haben wäre. Dies könnte eine Datei, eine Buchse, eine Datenbank oder Schlüssel-Wert-Speicher sein. Einige Ideen Ideen, die in den Sinn kommen, ist Ihre vorhandene Datenbank zu verwenden SQLite (falls es eine gibt, ist) oder sogar Memcached. Dann würden Sie einfach Ihre Tornado-Anwendung haben diese Werte aus lesen, wo Sie sie gespeichert werden.

Sie sind richtig, dass, sobald Sie tornado.ioloop.IOLoop.instance().start() Tornado Kontrolle laufen nie kehrt aus dieser Schleife fließen. Von diesem Punkt an, die Kontrolle Ihrer Anwendung wird innerhalb der Anwendung und RequestHandlers bleiben, dass Sie definiert.

Eine andere, weniger elegante Lösung wäre yaml zu nutzen, um serialisiert die in regelmäßigen Abständen von Ihrer Haupt-App-Objekten, und hat den Web-App die in gelesen. Sie auch Objekte in yaml Dump können, so dass Sie die verschiedenen Zustände von denen sehen können.

Sie könnten versuchen, http://www.zeromq.org/ als Mittel der Kommunikation zwischen auf die beiden Prozesse / Threads.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top