from fastapi import FastAPI, HTTPException, BackgroundTasks,Request,Body, File, UploadFile,Form
from fastapi.responses import JSONResponse
//代码初始化函数
@asynccontextmanager
async def lifespan(app: FastAPI):
try:
//需要再程序启动的时候一并开启的程序放在这里
yield
finally:
//程序退出的时候要执行的函数全部放在这里
logging.info("应用退出...")
try:
logging.info("清理所有循环任务....")
#这里不要再lock了,因为stop_process中已经lock,会死锁
for proc_name in list(process_refs.keys()):
stop_process(app, proc_name)
pass
except:
logging.info("清理所有循环任务异常")
app.state.executor.shutdown(wait=True)
manager.shutdown() # 显式关闭Manager
logging.info("清理资源完成")
app = FastAPI(lifespan=lifespan)
//一个普通的api
@app.post('/test')
async def _test(data: dict = Body(...)):
res={"code":0}
return res
//启动程序
if __name__ == '__main__':
uvicorn.run(app, host="0.0.0.0", port=PORT)
fastapi的基础框架
最新推荐文章于 2026-04-13 09:07:15 发布

2211

被折叠的 条评论
为什么被折叠?



