首页 > 解决方案 > 在 Linux 服务器上运行相同 python 脚本的多个实例

问题描述

我有这个脚本可以模拟对网站的访问,每次访问都使用不同的用户代理进行计数。假设我想同时运行这个脚本 50 次,将不同的用户代理作为参数传递给每个脚本。

u = ['user-agent0', 'user-agent49']

def function(user_agent):
    pass # My function

# Passing each element from my user-agent list
for i in range(50):
    function(u[i])

在这个 for 循环中,脚本将运行 50 次,但会一个接一个。如何传递每个不同的用户代理并同时运行它们?

标签: pythonmultiprocessing

解决方案


这是一个原始示例:

from multiprocessing import Pool

u = ['user-agent0', ... 'user-agent49']

def function(user_agent):
    return 0

if __name__ == '__main__':
    with Pool(len(u)) as p:
        p.map(function, u)

有很多变化是可能的。请注意,“同时运行”仅此而已。您将受到带宽和 Web 服务器响应时间的限制。您可能希望将池的大小限制为一次运行 10 个。


推荐阅读