Subprocess.Popen in threads
Verfasst: Donnerstag 5. September 2013, 13:46
Hi,
ich bin momentan dabei ein kleines tool zu basteln, welches mir alle x Minuten einen Ordner scannt und dann gegebenenfalls die Daten weiterverarbeitet.
dazu nutze ich https://github.com/senko/python-video-converter und APscheduler um den Thread zu starten.
allerdings habe ich nun das Problem, dass der video converter Popen nutzt um ffprobe/ffmpeg aufzurufen, das funktioniert auch alles wunderbar, aber sobald ich das ganze per APscheduler aufrufe bleibt der Thread 'hängen' und zwar beim ausfürhren von ffprobe, es sieht so aus als würde der Thread nicht mitbekommen dass der subprocess erfolgreich terminiert/ausgeführt wurde. Sobald der Thread 'hängt' und ich ctr + c drücke, merkt er das auch, springt dann quasi zum ende, und macht mit ffmpeg weiter...
da das ganze ja aber möglichst automatisch laufen würde wäre es natürlich klasse wenn das ganze selbstständig raus finden würde dass der subprocess beendet wurde und Daten zur Verarbeitung vorliegen.
gibt es da vielleicht ne einfache Möglichkeit auf die ich einfach nur nicht komme gerade?
Es kommt mir irgendwie so vor als würde der exit status code von ffprobe/ffmpeg einfach nicht beim thread ankommen...
bin für jede Hilfe dankbar
ich bin momentan dabei ein kleines tool zu basteln, welches mir alle x Minuten einen Ordner scannt und dann gegebenenfalls die Daten weiterverarbeitet.
dazu nutze ich https://github.com/senko/python-video-converter und APscheduler um den Thread zu starten.
allerdings habe ich nun das Problem, dass der video converter Popen nutzt um ffprobe/ffmpeg aufzurufen, das funktioniert auch alles wunderbar, aber sobald ich das ganze per APscheduler aufrufe bleibt der Thread 'hängen' und zwar beim ausfürhren von ffprobe, es sieht so aus als würde der Thread nicht mitbekommen dass der subprocess erfolgreich terminiert/ausgeführt wurde. Sobald der Thread 'hängt' und ich ctr + c drücke, merkt er das auch, springt dann quasi zum ende, und macht mit ffmpeg weiter...
da das ganze ja aber möglichst automatisch laufen würde wäre es natürlich klasse wenn das ganze selbstständig raus finden würde dass der subprocess beendet wurde und Daten zur Verarbeitung vorliegen.
gibt es da vielleicht ne einfache Möglichkeit auf die ich einfach nur nicht komme gerade?
Es kommt mir irgendwie so vor als würde der exit status code von ffprobe/ffmpeg einfach nicht beim thread ankommen...
bin für jede Hilfe dankbar
