在python中,我正在编写一个运行外部进程的脚本。此外部过程执行以下步骤:
可以通过传入要使用的值来绕过步骤1。尝试同时使用相同的值是一个错误,但顺序使用它是有效的。 (将其视为一个pid池,不超过10个可用)其他进程(例如用户登录)可以使用其中一个" pids"。
外部进程需要几个小时才能运行,并且必须运行多个独立副本。按顺序运行它们会起作用,但需要很长时间。
我正在使用多处理模块更改脚本以同时运行这些进程。我的代码的简化版本是:
from multiprocessing import Pool
import subprocess
def longRunningTask(n):
subprocess.call(["ls", "-l"]) # real code uses a process with no screen I/O
if __name__ == '__main__':
myArray = [1,2,3,4,5]
pool = Pool(processes=3)
pool.map(longRunningTask, myArray)
使用此代码失败,因为它使用相同的" pid"为每个过程开始。
我提出的解决方案是:
方法3是否存在问题,或者有不同的方法吗?