何らかの条件で並列処理(ワーカー)を生成し、IOジョブを実行させるスクリプトを作成する必要があります。それが終わったら、そのプロセスを閉じます。 しかし、プロセスがデフォルトで終了する傾向がないように見えます。ここでいくつかの並列プロセスを起動し、終了後にそれらを終了させます
は私のアプローチです:
import multiprocessing
pool = multiprocessing.Pool(4)
def f(x):
sleep(10)
print(x)
return True
r = pool.map_async(f, [1,2,3,4,5,6,7,8,9,10])
しかし、私はipythonでそれを実行し、この後、私はPSの補助を実行することができ、すべてのプリントのためwhait | grep ipythonと多くのプロセスを参照してください。これらの労働者がまだ生きているように見えます。
私は何か間違っているかもしれませんが、タスクを完了したらこれらのプロセスを終了させるにはどうすればよいですか?そして、私がたくさんの労働者を1つずつ産みたい場合(例えば、いくつかのrmqメッセージを得ることによって)、どのようなアプローチをとるべきですか?
なぜプールしないのですか?それはあなたが使用しようとしているプロセスの数ではありませんか? – roganjosh
はい、ありがとう!修正しました。変更はありません。 – Paul