我想使用子进程让一个脚本的20个实例并行运行。假设我有一个包含100.000个条目的大的url列表,我的程序应该控制我的脚本的20个实例一直在这个列表上工作。我想把它编码如下:
urllist = [url1, url2, url3, .. , url100000]
i=0
while number_of_subproccesses < 20 and i<100000:
subprocess.Popen(['python', 'script.py', urllist[i]]
i = i+1
我的脚本只是将一些内容写入数据库或文本文件。它不输出任何东西,也不需要比url更多的输入。在
我的问题是我无法找到一些方法来获取活动的子进程的数量。我是一个新手程序员,所以每一个提示和建议都是受欢迎的。我还想知道,一旦加载了20个子进程,while循环会再次检查条件,如何管理它?我想在上面再放一个while循环
^{pr2}$或者也许while循环总是检查子进程的数量,这是一种更好的可能性?在
我也考虑过使用模块多处理,但是我发现只调用脚本.py使用子处理而不是使用多处理的函数。在
也许有人能帮我,把我引向正确的方向。非常感谢!在
要保持一致的并发请求数,可以使用线程池:
要运行进程而不是线程,请从导入中删除
.dummy
。在只要在启动它们时保持计数,如果有任何url列表条目要处理,则使用来自每个子进程的回调来启动一个新的进程。在
例如,假设子进程在结束时调用传递给它的OnExit方法:
将它作为一个回调函数发送,似乎与上述方法不同:
相关问题 更多 >
编程相关推荐