python并行编程

问题描述 投票:0回答:5

嗨,我需要一些指导,如何编写执行其他 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()
python jobs subprocess parallel-processing
5个回答
4
投票

使用芹菜


1
投票

看看supervisord。听起来它会做你想做的事。


1
投票

也许您可以尝试使用多处理模块,它可以处理工作进程池,这看起来与您尝试实现的目标类似。


0
投票

您可以使用

poll()
方法来检查进程是否仍在运行。您必须循环遍历每个进程并检查它是否运行,否则运行一个新进程。


0
投票

@S.洛特

请问您的链接中是否要表达以下内容:

Celery 是一个简单、灵活且可靠的分布式系统,可处理大量消息,同时为操作提供维护此类系统所需的工具。

© www.soinside.com 2019 - 2024. All rights reserved.