线程化时,HTTP请求花费的时间更长| Python 3.6

时间:2018-10-24 16:26:22

标签: api http request python-requests call

我正在尝试//完全同时对不同服务器进行2个或更多API调用。

这些调用(如果按顺序进行)平均需要0.5秒,但是每当我线程化这些调用时,它们在// // 2次调用时会花费0.7,在使用4次调用时会花费1.2。

0.7仍优于0.5 x 2,而1.2仍优于0.5 x 4秒。但是我不明白为什么//当两次通话时平均不会花费0.5。

这是我使用的代码(该函数实际上调用了不同类的方法,延迟可能源自线程化时的延迟吗?)

import multiprocessing.dummy

pool = multiprocessing.dummy.Pool()

def function(data):
    timer = time()
    new_data = *api_call*
    print(time() - timer)
    return new_data

# Option 1:
data = pool.map(book, [data1, data2])

# Option 2:
data = function(data1)
data += function(data2)

在此先感谢您,如果我找到了一种方法来获得与单独调用时一样快的响应,那真是太棒了,对于我而言,速度非常重要,并且我可以在不同的服务器上进行4-6次API调用同时真的很棒。

0 个答案:

没有答案