FastAPI 项目启动/关闭事件实战:数据库连接、缓存预热、模型加载一站式搞定!
在生产环境中,我们经常会遇到这样的需求:
- 项目启动时,需要连接数据库、加载机器学习模型或预热缓存
- 项目关闭时,需要优雅释放连接、清理资源,确保不会“僵尸占用”
好消息是:FastAPI 原生就支持启动与关闭事件机制(startup/shutdown),而且使用起来异常优雅!
一、什么是生命周期事件?
FastAPI 提供两种方式注册生命周期事件:
方法一:使用 @app.on_event() 装饰器(经典方式)
from fastapi import FastAPI
app = FastAPI()
@app.on_event("startup")
async def startup_event():
print("应用启动,初始化资源...")
@app.on_event("shutdown")
async def shutdown_event():
print("应用关闭,释放资源...")
方法二:使用 lifespan() 上下文函数(推荐方式)
FastAPI 1.0 后推荐使用 lifespan 函数进行统一管理,功能更清晰:
from fastapi import FastAPI
from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(app: FastAPI):
print("✅ 应用启动 - startup")
# 初始化资源
yield
print("
本文地址:https://www.yitenyun.com/210.html
下一篇:从崖山新版本看国产库高可用发展