@kkolorid

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

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

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

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

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

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

Похожие вопросы