私は、concurrent.futures の ThreadPoolExecutor を使用して、スクリプトのパフォーマンスを改善しようとしています。Popen を介していくつかの外部 python スクリプトを起動し、それらを将来のオブジェクトとしてカプセル化していますが、これらのオブジェクトは完了としてコールバック関数に入りますが、マシンで実行されているのを見ることができます (かなりの時間実行されます)。コードは次のようになります。
with futures.ThreadPoolExecutor(max_workers=4) as executor:
p1 = executor.submit(subprocess.Popen([myotherPythonscript1], stdout = subprocess.PIPE))
p1.add_done_callback(process_result)
p2 = executor.submit(subprocess.Popen([myotherPythonscript2], stdout = subprocess.PIPE))
p2.add_done_callback(process_result)
def process_result( future ):
logger.info( "Seeding process finished...")
また、running() および wait() の将来の関数を使用してさまざまなアプローチを試みましたが、結果は同じでした。将来のオブジェクトは既に完了しているとマークされていますが、実際にはまだ実行中です。何か不足していますか?
ありがとう、