Каждый раз, когда я корректно завершаю работу своего приложения FastAPI, сохраняя файл (с помощью опции --reload), оно ожидает завершения всех фоновых задач, прежде чем начать завершение работы.
Код: Выделить всё
uvicorn INFO: Shutting down
uvicorn INFO: connection closed
uvicorn INFO: Waiting for background tasks to complete. (CTRL+C to force quit)
Проблема в том, что мои задачи никогда не будут завершены, поскольку мне нужно вручную отменить их после завершения работы FastAPI. В следующем примере:
Код: Выделить всё
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup logic (if any)
yield
logger.info("Shutting down sessions")
# Shutdown logic (if any)
Session.close_all()
"Завершение сеансов" никогда не регистрируется, поскольку он ожидает завершения всех фоновых задач, чего никогда не произойдет, пока я не вызову Session.close_all(). Как мне закрыть сеансы, чтобы FastAPI мог корректно завершить работу?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... of-fastapi