Python 并行编程

2 投票
4 回答
2048 浏览
提问于 2025-04-16 16:53

你好,我需要一些指导,如何编写一个程序来执行其他的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

撰写回答