@kkolorid

Как использовать многопоточность в Python при долгих http запросах?

Доброго времени суток. Реализую программу, в которой цикл проходится по массиву, выполняет определенные действия с данными, отправляет http запрос на сторонний api - принимает ответ, а затем записывает новый элемент в другой массив (условно).

Проблема в том, что http запрос занимает достаточно много времени на фоне большого объёма обрабатываемых данных - ощутимо, скрипт работает в несколько раз дольше, чем если бы я не тратил время на эти запросы. Соответственно, ресурсы в это время простаивают. Почитал о том, что многопоточность в Python немного не такая и не даст прироста (если только её специально не сломать как-то) и применяется только в случаях, когда ресурсы, действительно, стоят без дела. Итак, вопрос:

Как можно реализовать такую фичу? Что бы скрипт в итерации цикла доходил до места, где отправляется запрос и не ожидая ответа, шёл дальше по циклу. Точнее, ожидая, но в фоне. Что бы результат, как бы "догонял" цикл.

Желательно примеры кода условного или хотя бы в какую сторону думать, как организовать это всё... Спасибо.
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
Zarom
@Zarom
Мастер на все руки из жопы
Копать в сторону asyncio и/или aiohttp.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 1 300 до 2 500 usd.
ТК «Альфа» Тверь
До 55 000 руб.
Alytics Зеленоград
от 100 000 до 130 000 руб.
22 окт. 2019, в 00:09
3500 руб./за проект
21 окт. 2019, в 22:35
500 руб./за проект