
FastAPI 0.162.7 исправил очистку ресурсов при отмене запроса
13 ноября опубликован FastAPI 0.162.7 с исправлением завершающего кода асинхронных зависимостей с yield при отмене. Это важно для API, где зависимость открывает ресурс, передаёт его обработчику, а затем освобождает. На Mentoring.digital разбираем, какой сценарий добавить к проверке обновления.
Содержание новости
Почему важен код после yield
Зависимость с yield может выдать обработчику сессию базы данных, а после использования закрыть её в завершающем блоке. Если освобождение ресурса асинхронное, оно само содержит ожидание. Отмена во время такого ожидания способна прервать очистку.
В версии 0.162.7 разработчики исправили именно завершение асинхронных генераторных зависимостей. В коде используется защита выхода из контекстного менеджера через CancelScope AnyIO. После выхода выполняется проверка ожидающей отмены. Это позволяет закончить очистку, сохранив смысл отмены самой операции.
Что учесть при выборе версии Python
В тот же день предыдущая версия 0.162.6 прекратила поддержку Python 3.10. В метаданных 0.162.7 указан Python 3.11 или новее. Поэтому для проекта на 3.10 переход на свежий патч затрагивает и версию интерпретатора.
Сначала проверьте фактический Python в локальном окружении, контейнере и CI. Если проект ещё использует 3.10, выделите смену интерпретатора в отдельный проверяемый шаг. Один номер FastAPI в файле зависимостей не показывает, на каком Python запустится сервис.
Как проверить завершение зависимости
Для своего тестового приложения предусмотрите обычный запрос и отмену во время работы обработчика. Если зависимость освобождает ресурс с ожиданием, отдельно проверьте отмену после начала этой очистки. Наблюдать нужно завершение освобождения ресурса, а также факт отмены запроса.
Такие сценарии помогают отличить ошибку в жизненном цикле зависимости от сбоя конкретного драйвера или собственного кода. Исправление фреймворка не заменяет проверку используемой базы и других внешних ресурсов. Асинхронные зависимости можно отработать на практике по Python, а свой сценарий отмены разобрать с наставником по серверной разработке на Python.
Оценки и отзывы о новости
Отзывы читателей0
Здесь пока нет отзывов. Расскажите, чем вам полезна новость.

