HTTP-запросы занимают больше времени, когда поток |Python 3.6 - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь // 2 или более вызовов API на разных серверах в одно и то же время.

Эти вызовы, если они выполняются последовательно, в среднем занимают 0,5 секунды, но всякий раз, когда я их записываю, они принимают что-то вроде 0,7 при // 2 вызовах, 1.2 при использовании 4 вызовов и т. Д.

0,7все еще лучше, чем 0,5 х 2, а 1,2 все еще лучше, чем 0,5 х 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 (на разных серверах) одновременно, это было бы действительно здорово.

...