РекомендуетсяFastAPIPython

FastAPI: async и блокирующий I/O

В async-обработчике используйте неблокирующий клиент. Обычный def-обработчик подходит для синхронной библиотеки.

Проверено Изменено

Плохо

@app.get("/report")
async def report():
    return blocking_sdk.fetch_report()

Хорошо

@app.get("/report")
def report():
    return blocking_sdk.fetch_report()

Почему это важно

Синхронный вызов внутри async def блокирует цикл событий. Обычные def-обработчики FastAPI выполняет в пуле потоков.

Когда применять

FastAPI, ASGI. Пример использует синхронный SDK. Для async-клиента выбирайте async def + await. Выделение потока не отменяет тайм-ауты; CPU-тяжёлые задачи требуют отдельного рассмотрения.

Кто что делает

Человек

Задаёт время ответа и предел нагрузки на внешний сервис.

AI-агент

Проверяет тип SDK, выбирает обработчик и проводит тест параллельных запросов.

Пример применения

Внешний SDK отчётов поддерживает только синхронный вызов. Endpoint реализован через def, SDK имеет ограничение времени; тяжёлая генерация вынесена в очередь.

Как проверить у себя

  • Медленный SDK не блокирует все остальные запросы.
  • Настроены тайм-аут и предел параллелизма.
ПервоисточникиИстория изменений на GitHub

Дата проверки отражает содержательную сверку. Синхронизация сайта не обновляет её автоматически.