📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials FastAPI FastAPI Lifespan Events

FastAPI Lifespan Events

5 min read
Use lifespan context manager for async startup (connect DB, load model) and shutdown cleanup.

Startup and Shutdown Events

from contextlib import asynccontextmanager
from fastapi import FastAPI

@asynccontextmanager
async def lifespan(app: FastAPI):
    # STARTUP
    print("Starting up...")
    await database.connect()
    await redis_client.ping()
    # Load ML models
    app.state.model = load_model("model.pkl")

    yield  # App runs here

    # SHUTDOWN
    print("Shutting down...")
    await database.disconnect()
    await redis_client.close()

app = FastAPI(lifespan=lifespan)

@app.get("/predict")
async def predict(data: InputData, request: Request):
    model  = request.app.state.model
    result = model.predict([data.features])
    return {"prediction": result[0]}