我希望能够使用python中的多处理库连续使用python-request(使用Stream选项)从多个实时web apis流式传输。这可能在双核Linux系统上实现,还是我最好在多个屏幕会话中将它们作为单个程序运行?
我是否也想使用一群工人?
感谢您的帮助,如果问题不清楚,请与我联系。
答案 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