1つのmain関数mainFunc(フラスコモジュールを使ってRestfulサービスとして公開されている)からいくつかの関数を呼び出しています。実行には数分から1時間かかることがあり、30秒ごとに進捗状況(関数の出力が呼び出される)が表示されます。 As Rest API呼び出しは別のプログラムからmainFunc()に行われるので、各呼び出し時に出力(つまり現在の状態)を返す必要があります。python関数のstdoutを定期的に返す方法は?
How to capture stdout output from a Python function call?としてyieldとStringIOを試しましたが、それを動作させることができませんでした。stdoutは、すべてのタスクの完了時にのみ返され、その間には返されません。これができるかどうかをお勧めします。
mainFunc():
runs_for_5_mins()
runs_for_30_mins()
...
return output
Alfeさん、ありがとうございました。並列メソッドのスレッドは私に適しています。マルチプロセッシングを使うべきですか? – redeye
標準モジュールスレッディングを使用します。マルチプロセッシングは複数のプロセス用です。 – Alfe