Python Web & Scripts — Django, FastAPI, скрипты

asyncio ломается не на await, а на блокирующих кусках, которые никто не заметил

asyncio ломается не на await, а на блокирующих кусках, которые никто не заметил

За неделю в репах чаще всего всплывают одни и те же ошибки: в async-функции случайно вызывают обычный requests, делают тяжёлый JSON-парсинг прямо в event loop, или держат соединение открытым дольше, чем нужно.

Проверка перед запуском простая:
— любые I/O-запросы только через async-клиенты;
— CPU-тяжёлое выносить в отдельный процесс или хотя бы thread pool;
— на каждый внешний вызов ставить timeout, иначе один зависший endpoint тормозит всю очередь;
— все корутины, которые должны идти параллельно, собирать через gather или TaskGroup, а не ждать по одной.

Ещё одна типовая ошибка — забыть про лимиты конкуренции. Если без throttling поставить сотни задач на один API, вы не ускорите систему, а устроите себе очередь внутри очереди.

Если хотите, чтобы asyncio работал как ускоритель, а не как источник случайных лагов, сначала ищите блокировки и только потом оптимизируйте количество задач.
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.