Seite 1 von 1

2 Programme und eine Weboberfläche - Kommunikation

Verfasst: Mittwoch 22. Juni 2011, 12:03
von freakTAB
Ich habe hier eine Flask Applikation mit der ich ein anderes Pythonscript quasi fernstarten will. Das ferngesteuerte Programm ist ein kleines Befehlszeilentool welches auch selbständig durchläuft wenn es einmal gestartet wurde. Nun wäre es allerdings schön wenn ich die Ausgaben die dieses Progrämmchen auf StdOut macht auch auf der Webseite zeitnah ausgegeben werden. Nur bin ich mir nicht ganz sicher wie. Kann ich dazu subprocess gesichert benutzen? Bei meinen Tests habe ich nur immer erst nach Beenden des subprozesses die Ausgaben erhalten. Oder muss ich da mit irgendeiner IPC Technik ran (XML-RPC etc)?

Wäre dankbar für einen Schubs in die richtige Richtung.

Re: 2 Programme und eine Weboberfläche - Kommunikation

Verfasst: Mittwoch 22. Juni 2011, 12:09
von Hyperion
Du kannst auch mit Subprocess in "Echtzeit" Daten auslesen. Dazu gabs vor einigen Wochen mal nen Thread hier im Forum iirc.

Sollen die Daten dann auch auf der Seite ausgegeben werden, brauchst Du eine Art Pulling mittels AJAX würde ich mal sagen.

Re: 2 Programme und eine Weboberfläche - Kommunikation

Verfasst: Mittwoch 22. Juni 2011, 13:10
von freakTAB
Ja, dass ich die Ausgabe über eine "AJAX Pumpe" realisieren muss war mir auch schon klar - es ging um die Kommunikation zwischen Webseitenbackend und Tool. Hab jetzt den Denkfehler bei meinen Testaufbau mit subprocess gefunden. Die Ausgaben dürfen nicht gepuffert werden. Also ein Pythonscript dann immer mit der Kommandozeile

Code: Alles auswählen

python -u script.py
aufrufen. Ansonsten landet StdOut in einem Zwischenpuffer der u.U. erst nach dem Beenden geflusht wird und in der pipe bei subprocess.popen landet. Danke für den Hinweis dass es doch geht, ansonsten hätte ich nicht weitergesucht ;)

Re: 2 Programme und eine Weboberfläche - Kommunikation

Verfasst: Mittwoch 22. Juni 2011, 17:35
von Hyperion
Also wenn Du schon ein Python-Script hast, könntest Du Dir doch auch überlegen das zu importieren, oder nicht? Ok, müßte man mal gucken, ob sich das mit den Threads des Webservers verträgt...