是否可以通过多处理来处理X量的流API流?

时间:2014-08-04 20:16:42

标签: python multiprocessing python-requests

我希望能够使用python中的多处理库连续使用python-request(使用Stream选项)从多个实时web apis流式传输。这可能在双核Linux系统上实现,还是我最好在多个屏幕会话中将它们作为单个程序运行?

我是否也想使用一群工人?

感谢您的帮助,如果问题不清楚,请与我联系。

2 个答案:

答案 0 :(得分:1)

在设计解决方案之前弄清楚你的瓶颈是什么;

首先要看的是网络带宽。如果一个流可以使您的网络饱和,那么下载不止一个就不会更快。

第二件事是磁盘写入吞吐量。您的磁盘和操作系统可以处理所有这些并发写入吗?

如果您想进行转码,您可能还会遇到计算限制。

答案 1 :(得分:0)

是的,使用multiprocessing可以让您从多个API流式传输。您想使用Pool,因为它可以简化来回传输数据。

这是一个简单的例子:

import multiprocessing

def calc(num):
    return num*2

pool = multiprocessing.Pool(5)
for output in pool.map(calc, [1,2,3]):
    print 'output:',output

输出

output: 2
output: 4
output: 6