示例1:服务启动时的事件 startup 使用app.on_event(“startup”) 装饰器注册服务启动事件,可以注册多个服务启动事件 服务启动后,等所有被注册的 startup事件都执行完成后,才开始接收请求 应用场景:初始化db,初始化外部API连接等等 from fastapi import FastAPI app = FastAPI() items = {} @app.on_event("star...
应用启动和关闭事件(旧版本) 事件处理程序,在应用程序启动之前和关闭期间执行。每次uvicorn和hypercorn服务器重启加载时都会激活这些事件 app = FastAPI() # 启动事件 @app.on_event("startup") async def initial
("startup")asyncdefstartup_event():print("启动应用程序啦")items["foo"] = {"name":"Fighters"}items["bar"] = {"name":"Tenders"}# 添加在应用程序关闭时运行的函数@app.on_event("shutdown")asyncdefshutdown_event():print("关闭应用程序啦")withopen("log.txt", mode="a")aslog:log....
复制 app=FastAPI()@app.on_event("startup")defstartup_event():print("startup")@app.on_event("shutdown")defshutdown_event():print("shutdown") 其实很简单,我们注入这两个事件即可完成。在结束的时候,我们如果用IO的操作那么必须走同步的方式,不能用异步的方式。 那么这些我们在实际的工作中如何使用...
async def startup_event(): print("启动应用程序啦") items["foo"] = {"name": "Fighters"} items["bar"] = {"name": "Tenders"} # 添加在应用程序关闭时运行的函数 @app.on_event("shutdown") async def shutdown_event(): print("关闭应用程序啦") ...
@app.on_event("startup") def startup_event(): threading.Thread(target=do_work, daemon=True).start() def do_work(): while True: # do background work 3、使用第三方后台任务库 可以使用第三方库如apscheduler来定期执行后台任务。 from apscheduler.schedulers.background import BackgroundScheduler ...
@app.on_event("startup")asyncdefstartup_event():print("启动应用程序啦")items["foo"]={"name":"Fighters"}items["bar"]={"name":"Tenders"}# 添加在应用程序关闭时运行的函数 @app.on_event("shutdown")asyncdefshutdown_event():print("关闭应用程序啦")withopen("log.txt",mode="a")aslog...
@app.on_event("startup")asyncdefstartup_event(): scheduler.add_job(tick,'interval', seconds=3) scheduler.start() 这样就可以每 3 秒执行一次 tick 方法。我们也可以通过 scheduler 的其他方法来设置更复杂的定时任务。 使用celery celery 也是一个非常常用的任务队列,可以配合 FastAPI 使用。
只有所有startup事件处理器运行完毕,FastAPI应用才开始接收请求。 shutdown事件¶ 使用shutdown事件声明app关闭时运行的函数: Python 3.8+ fromfastapiimportFastAPIapp=FastAPI()@app.on_event("shutdown")defshutdown_event():withopen("log.txt",mode="a")aslog:log.write("Application shutdown")@app.get(...
("startup")async def startup_event():print("启动应用程序啦")items["foo"] = {"name": "Fighters"}items["bar"] = {"name": "Tenders"}# 添加在应用程序关闭时运行的函数@app.on_event("shutdown")async def shutdown_event():print("关闭应用程序啦")with open("log.txt", mode="a") as...