运行多个subprocess.call并控制它们

时间:2015-11-24 11:29:50

标签: python loops subprocess controls

我想创建大量通过subprocess.call同步运行的子进程(100+)。 这将大大降低性能,并向我保证一两次崩溃。

我的目标是限制同时运行的子进程数量,同时仍然在主列表上循环。

概念:

for line in list:
    subprocess.call('/root/folder/to/my/script' + line)
    i+=1
    if i > 10: 
        if subprocess.call(stdout == 0):
            create new subprocess

所以我想循环遍历一个列表,创建10个subprocess.calls,如果其中一个subprocess.call完成运行(停止提供输出的ax时间量?)或者其中一个subprocess.call崩溃:创建一个新的。

以下是对该问题的更直观的解释:

Running processes:
  [o]    [o]
  [o]    [o]
  [o]    [X] <--Crashed/Finished: Replace with new subprocess.call from list
  [o]    [o]
  [o]    [o]

我希望我清楚地解决我的问题/问题,如果我没有说清楚,请告诉我。

1 个答案:

答案 0 :(得分:0)

查看multiprocessing模块,尤其是Pool对象。