首页 > 解决方案 > 如何更新在进程池下执行的多个 Python 文件的最佳方法

问题描述

我正在开发一个需要同时执行许多 Python 脚本的系统。我正在使用这段代码来做到这一点:

import os
from multiprocessing import Pool

processes = ('grabber.py', 'mailer.py', 'updater.py')


def run_process(process):
    os.system('python {}'.format(process))


pool = Pool(processes=3)
pool.map(run_process, processes)

此代码很有用并解决了我的问题,但脚本“updater.py”负责更新其他代码“grabber.py”和“mailer.py”执行以下步骤:

1 - 尝试从远程服务器下载带有更新的新闻脚本(grabber 和 mailer) 2 - 备份当前脚本 3 - 停止 grabber.py 和 mailer.py 4 - 替换脚本 5 - 再次重新执行它们

但是,我正在考虑我的情况。我正在使用进程池来运行我的脚本。将我的池进程与此更新进程相关联并停止邮件和抓取器的最佳方法是什么?

谢谢!

标签: pythonmultithreading

解决方案


你可以这样试试:

import threading
from time import sleep

threading.Thread(target='updater.py').start()
sleep(0.01)
threading.Thread(target='grabber.py').start()
sleep(0.01)
threading.Thread(target='mailer.py').start()
sleep(0.01)

推荐阅读