тайм-аут aiohttp не работает должным образом

#python-asyncio #aiohttp

#python-asyncio #aiohttp

Вопрос:

У меня есть код, который выполняет http-запросы к сайтам (используя aiohttp) с помощью async_timeout . Если я выполняю все запросы вместе, то некоторые запросы вызывают ошибку времени ожидания (даже если время ожидания = 20 секунд.). Но если я выполняю один запрос — он работает.

 def coro(url):    
    with async_timeout.timeout(TIMEOUT, loop=loop):
        async with session.get(url) as response:
           text, status = (await response.text()), response.status
    ...
 

Это проблема / ошибка async_timeout или моя?

Я пытался использовать TCPConnector ( aiohttp.TCPConnector(limit=None, verify_ssl=False, loop=loop) ), но это не работает

Ответ №1:

Нет ничего странного, если запрос занимает более 20 секунд при очень большом количестве запросов (и этот запрос выполняется намного быстрее, когда выполняется один).

Чтобы убедиться, просто вставьте распечатки временных меток до и после .get() / .text() выполнения.

Код Timeout смертельно прост и хорошо протестирован, не подозревайте в нем ошибки.

Комментарии:

1. Спасибо вам. Как я могу улучшить производительность этого скрипта? Использовать многопроцессорную обработку или несколько vps?

2. У меня есть время запроса теста, оно составляет 0,1-0,3 секунды

3. Извините, но ваш вопрос слишком широкий. Я не могу ничего предложить, даже не посмотрев на исходный код.

4. Могу ли я написать на вашу электронную почту? (или другое сообщение?)

5. эндрю дот Светлов в gmail точка com