fastapi设置服务启动前逻辑和服务关闭后逻辑

from contextlib import asynccontextmanager

from fastapi import FastAPI


@asynccontextmanager
async def lifespan(app: FastAPI):
    # 启动逻辑
    print("fastapi服务启动前代码")
    yield
    print("fastapi服务关闭后逻辑")
    # 关闭逻辑


app = FastAPI(lifespan=lifespan)


@app.get("/")
async def test():
    return "1111"


if __name__ == "__main__":
    import uvicorn

    uvicorn.run(app, host="127.0.0.1", port=10002)

# 主要用启动前逻辑, 在服务启动之前将依赖的资源先启动起来.

# 对于旧版fastapi

from fastapi import FastAPI

app = FastAPI()


@app.on_event("startup")
def on_startup():
    # 绑定fastapi的startup事件,初始化各种数据库资源
    ...


@app.on_event("shutdown")
def on_shutdown():
    # 绑定fastapi的shutdown事件,清理各种数据库资源
    ...

 

posted @ 2025-07-01 17:03  CJTARRR  阅读(54)  评论(0)    收藏  举报