全书目录

第二篇:FastAPI 完全指南 —— 软件城市政务大厅宇宙

第十六章:应用生命周期 —— 城门什么时候开,什么时候关

1 分钟 53 字 第 62 / 962 个阅读单元

真实服务总有一些动作应该发生在:

  • 启动前
  • 关闭前

FastAPI 现在官方推荐的方式是 lifespan

py
from contextlib import asynccontextmanager
from fastapi import FastAPI

runtime = {}

@asynccontextmanager
async def lifespan(app: FastAPI):
    runtime["service_name"] = "软件城市政务大厅"
    print("大厅开门,初始化完成")
    yield
    runtime.clear()
    print("大厅闭馆,资源已释放")

app = FastAPI(lifespan=lifespan)
text
开馆前
├── 建立数据库连接
├── 初始化模型
├── 创建共享客户端
└── 加载配置

闭馆后
├── 关闭连接
├── 清理资源
└── 写入收尾日志