Pythonでfor文の中でLINUXコマンドを並列処理で動作させたい

お世話になっております。
下記の環境で表題の件を実行したいと思っております

・Ubuntu18
・Python3.8+Django

ソースを下記のように組み立てました

Python

for data_info in data_list: # コマンド実行 subprocess.run('/home/oooo/xxxx.sh ' + str(data_info.id), stdout=subprocess.PIPE, shell=True)

この中で各サブプロセスとして実行されるLINUXコマンド"xxxx.sh"が引数"data_info.id"ごとに並列で動作させたいと考えております。下記のページを参照し
https://blog.imind.jp/entry/2019/07/20/025317

Python

data_num = len(data_list) with Pool(data_num) as pool: # 要素数分並列処理 for data_info in data_list: # コマンド実行 pool.apply_async(subprocess.run,('/home/oooo/xxxx.sh ' + str(data_info.id), stdout=subprocess.PIPE, shell=True))

このようにしたのですが、うまくいかず
おわかりになる方いらっしゃいましたらよろしくお願い致します。

コメントを投稿

0 コメント