Python 并行编程
你好,我需要一些指导,如何编写一个程序来执行其他的Python程序,但最多同时运行6次,并且始终保持有6个进程在运行,即使其中一个结束了。
我还想知道这些进程现在的状态,但我不想等任何一个进程完成。
刚创建的进程的PID是什么?它还在运行吗?还是出现了错误?或者它已经成功完成了?
一些任务管理器……
import subprocess
def start():
proc = {}
for i in range (0,6):
proc[i] = subprocess.Popen(
['python', 'someprogramm.py', '--env', 'DEVELOPMENT', '-l'],
shell = True,
stdout = subprocess.PIPE,
stderr = subprocess.STDOUT
)
if __name__ == '__main__':
start()
4 个回答
1
你可以看看 supervisord。听起来它能满足你的需求。
1
你可以试试使用多进程模块,它可以处理一组工作进程,这听起来和你想要实现的目标很相似。
4
使用 celery。