FastAPI endpoint объявлен async, но сервис всё равно блокируется. Почему?

PythonMiddleSituational QuestionsТеорияfastapiasynciobackendperformance

Что хотят услышать интервьюеры:

Причина: внутри

Ответ:

async def

мог использоваться блокирующий код:

requests

, sync DB driver,

time.sleep

, тяжелая CPU-операция.

Решение: заменить на async-клиент, вынести CPU-bound в executor/process pool или сделать endpoint sync, если это оправданно.

На интервью: важно проговорить, что async не делает блокирующий код неблокирующим автоматически.

Источники

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