Middle
42
Was ist lifespan in FastAPI? Welche Mechanismen gibt es, um Code vor dem Start und nach dem Stoppen der Anwendung auszuführen?
Unternehmen wurden gefragt
Antwort von AI
sobes.tech KI
В FastAPI lifespan — это механизм управления жизненным циклом приложения, позволяющий выполнять код при старте и завершении работы сервера.
Для выполнения кода перед запуском и после остановки приложения используются специальные функции, которые можно определить с помощью контекстного менеджера или декоратора @app.on_event:
@app.on_event("startup")— код, который выполняется при запуске приложения.@app.on_event("shutdown")— код, который выполняется при остановке приложения.
Пример с использованием событий:
from fastapi import FastAPI
app = FastAPI()
@app.on_event("startup")
async def startup_event():
print("Приложение запускается: инициализация ресурсов")
@app.on_event("shutdown")
async def shutdown_event():
print("Приложение останавливается: освобождение ресурсов")
Также в FastAPI 0.70+ появился параметр lifespan, который позволяет задать асинхронный контекстный менеджер для более гибкого управления жизненным циклом:
from contextlib import asynccontextmanager
from fastapi import FastAPI
@asynccontextmanager
def lifespan(app: FastAPI):
# Код при старте
print("Запуск")
yield
# Код при остановке
print("Остановка")
app = FastAPI(lifespan=lifespan)
Таким образом, lifespan — это современный способ централизованно управлять стартом и остановкой приложения, а @app.on_event — более традиционный способ для тех же целей.