Добавьте обработчики запуска/выключения в приложение FastAPI с API продолжительности жизни.Python

Программы на Python
Anonymous
Добавьте обработчики запуска/выключения в приложение FastAPI с API продолжительности жизни.

Сообщение Anonymous »


Рассмотрим FastAPI, использующий параметр lifespan следующим образом:

def lifespan(app): print('начало срока службы') урожай print('продолжительность жизни окончена') приложение = FastAPI (продолжительность жизни = продолжительность жизни) Теперь я хочу зарегистрировать дополнительное приложение с собственными функциями жизненного цикла:

app.mount(mount_path, sub_app) Как зарегистрировать обработчики запуска и завершения работы для дополнительного приложения?

Все решения, которые я смог найти, либо требуют контроля над генератором lifespan (которого у меня нет), либо включают устаревшие методы, такие как add_event_handler (которые не работают, когда срок службы установлен).

Обновление Минимальный воспроизводимый пример:

из импорта FastAPI FastAPI # --- главное приложение --- продолжительность жизни защиты(_): печать("запуск") урожай печать («выключение») приложение = FastAPI (продолжительность жизни = продолжительность жизни) @app.get("/") асинхронное определение корня(): return {"message": "Привет, мир"} # --- дополнительное приложение --- sub_app = FastAPI() @sub_app.get("/") асинхронная защита sub_root(): return {"message": "Привет, Подмир"} app.mount("/sub", sub_app) app.on_event("startup")(lambda: print("substartup")) # не работает app.on_event("shutdown")(lambda: print("sub Shutdown")) # не работает Запустить с помощью: uvicorn my_app:app --port 8000

Вернуться в «Python»