Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про FastAPI: async, await

Какие проблемы возникают, если endpoint объявлен async, а вся внутренняя логика остаётся синхронной?

Вопрос проверяет понимание асинхронной модели выполнения и реальных выгод от async/await.

Короткий ответ

Если endpoint объявлен async, но внутри используются синхронные операции, сервер блокирует event loop. В результате приложение теряет преимущества асинхронности и плохо масштабируется. При высокой нагрузке такие эндпоинты начинают резко деградировать по времени ответа. Это частая ошибка при работе с БД или внешними сервисами.

Длинный ответ

Определение

Асинхронный endpoint — это обработчик запроса, который должен освобождать event loop во время ожидания ввода-вывода.

В чём возникает проблема

Асинхронность работает только при одном условии — все длительные операции должны быть неблокирующими.

  1. Блокировка event loop

    • синхронный запрос к БД

    • синхронный HTTP-вызов

    • тяжёлые вычисления

  2. Потеря масштабируемости

    • запросы начинают выполняться последовательно

    • количество одновременных клиентов резко ограничивается

  3. Ложное ощущение асинхронности

    • код выглядит современно

    • но работает как обычный sync

Пример проблемы

@app.get("/users")
async def get_users():
    users = sync_db_query()  # блокирует event loop
    return users

В этом случае:

  • async не даёт преимуществ

  • приложение ведёт себя как синхронное

Как правильно

  • использовать async-драйверы

  • выносить sync-код в thread pool

  • делать endpoint синхронным, если async не нужен

Вывод

async имеет смысл только тогда, когда вся цепочка операций поддерживает асинхронное выполнение.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • FastAPI

    FastAPI

Ключевые слова

#async

#await

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.