Плохая производительность при отправке нескольких запросов через grequests - PullRequest
0 голосов
/ 22 мая 2019

Я создаю асинхронное приложение, которое пытается отправить 101 запрос одновременно с использованием командных запросов.

Возникшая проблема заключается в том, что я не получаю улучшения, используя греквесты из простых синхронных запросов. Get.

Чтобы решить мою проблему, я попытался настроить grequests.map(rs, size=101) с помощьюпереход на imap для более динамичной отправки запросов.Кроме того, меняя размер на меньшее число.

base_url = "https://www.reed.co.uk/api/1.0/jobs/"

ids_to_execute = [urls]

rs = (grequests.get(base_url + str(url),
                    auth=('auth', ''), stream=False) for url in ids_to_execute)


def lambda_handler(event,context):

newJobsdic = []
for response in grequests.map(rs, size=101):
    if not ids_to_execute:
        print ("No new jobs to generate")
        break
    else:
        newJobsdic.append(json.loads(response.content))

Из моего базового понимания newJobsdic.append(json.loads(response.content)) не делает приложение асинхронным, так как оно добавляет результат каждого запроса к диктовке.Мой вопрос заключается в том, есть ли способ получить результат всех 101 запроса одновременно, без необходимости повторять каждый из них.

Более того, любые предложения по улучшению более чем приветствуются, так как мое понимание асинхронных запросов ограничено.

...