复制 app=FastAPI()@app.on_event("startup")defstartup_event():print("startup")@app.on_event("shutdown")defshutdown_event():print("shutdown") 其实很简单,我们注入这两个事件即可完成。在结束的时候,我们如果用IO的操作那么必须走同步的方式,不能用异步的方式。 那么这些我们在实际的工作中如何使用...
@app.on_event("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("...
示例1:服务启动时的事件 startup 使用app.on_event(“startup”) 装饰器注册服务启动事件,可以注册多个服务启动事件 服务启动后,等所有被注册的 startup事件都执行完成后,才开始接收请求 应用场景:初始化db,初始化外部API连接等等 from fastapi import FastAPI app = FastAPI() items = {} @app.on_event("star...
只有所有startup事件处理器运行完毕,FastAPI应用才开始接收请求。 shutdown事件¶ 使用shutdown事件声明app关闭时运行的函数: fromfastapiimportFastAPIapp=FastAPI()@app.on_event("shutdown")defshutdown_event():withopen("log.txt",mode="a")aslog:log.write("Application shutdown")@app.get("/items/")as...
@app.on_event("startup")defstartup_event():print("startup") @app.on_event("shutdown")defshutdown_event():print("shutdown") 其实很简单,我们注入这两个事件即可完成。在结束的时候,我们如果用IO的操作那么必须走同步的方式,不能用异步的方式。
我们可以在应用启动和关闭的时候自定义事件处理器。注意,只有主应用才可以这么做。 启动事件 通过"startup"事件来声明一个应当在应用启动之前运行的函数。 fromfastapiimportFastAPI app=FastAPI() items={}@app.on_event("startup")asyncdefstartup_event(): ...
app = FastAPI()@app.on_event("startup")def startup_event():print("startup")@app.on_event("shutdown")def shutdown_event():print("shutdown") 其实很简单,我们注入这两个事件即可完成。在结束的时候,我们如果用IO的操作那么必须走同步的方式,不能用异步的方式。
@app.on_event("startup")asyncdefstartup_event(): scheduler.add_job(tick,'interval', seconds=3) scheduler.start() 这样就可以每 3 秒执行一次 tick 方法。我们也可以通过 scheduler 的其他方法来设置更复杂的定时任务。 使用celery celery 也是一个非常常用的任务队列,可以配合 FastAPI 使用。
@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...