Wie führe ich einen lang Laufenden job in den hintergrund, in Python

Ich habe eine web-service läuft, dass Aufträge mit langer Laufzeit (in der Größenordnung von mehreren Stunden). Ich bin der Entwicklung dieses über-Kolben, Gunicorn und nginx.

Was ich denke tun zu haben, die route, die dauert eine lange Zeit zu vollenden, eine Funktion aufzurufen, die einen thread erstellt. Die Funktion wird dann wieder eine guid zurück auf die Strecke, und die Strecke zurück eine url (mithilfe der guid), die der Benutzer verwenden können, um den Fortschritt zu überprüfen. Ich mache den thread ein daemon-thread.daemon = True), so dass der thread beendet wird, wenn meine Berufung code beendet (unerwartet).

Ist das der richtige Ansatz? Es funktioniert, aber das bedeutet nicht, dass es korrekt ist.

my_thread = threading.Thread(target=self._run_audit, args=())
my_thread.daemon = True
my_thread.start()
InformationsquelleAutor Mark | 2015-12-16
Schreibe einen Kommentar