長時間実行されるジョブ (数時間程度) を実行する Web サービスがあります。これを Flask、Gunicorn、nginx を使用して開発しています。
私がやろうとしているのは、完了までに長い時間がかかるルートで、スレッドを作成する関数を呼び出すことです。関数はルートに GUID を返し、ルートはユーザーが進行状況を確認するために使用できる URL (GUID を使用) を返します。スレッドをデーモン (thread.daemon = True) にして、呼び出しコードが (予期せず) 終了した場合にスレッドが終了するようにしています。
これは正しいアプローチでしょうか? 機能しますが、それが正しいことを意味するわけではありません。
my_thread = threading.Thread(target=self._run_audit, args=())
my_thread.daemon = True
my_thread.start()
ベストアンサー1
セロリとRQは過剰設計です簡単な作業このドキュメントをご覧ください -python 3.0 の新機能
また、Flask アプリで長時間実行されるジョブをバックグラウンドで実行する方法の例も確認してください -https://stackoverflow.com/a/39008301/5569578