startup事件¶ 使用startup事件声明app启动前运行的函数: Python 3.8+ fromfastapiimportFastAPIapp=FastAPI()items={}@app.on_event("startup")asyncdefstartup_event():items["foo"]={"name":"Fighters"}items["bar"]={"name":"Tenders"}@app.get("/items/{item_id}")asyncdefread_items(item_id:...
示例1:服务启动时的事件 startup 使用app.on_event(“startup”) 装饰器注册服务启动事件,可以注册多个服务启动事件 服务启动后,等所有被注册的 startup事件都执行完成后,才开始接收请求 应用场景:初始化db,初始化外部API连接等等 from fastapi import FastAPI app = FastAPI() items = {} @app.on_event("star...
复制 app=FastAPI()@app.on_event("startup")defstartup_event():print("startup")@app.on_event("shutdown")defshutdown_event():print("shutdown") 其实很简单,我们注入这两个事件即可完成。在结束的时候,我们如果用IO的操作那么必须走同步的方式,不能用异步的方式。 那么这些我们在实际的工作中如何使用...
app = FastAPI() items = {}# 添加在应用程序启动之前运行的函数@app.on_event("startup")asyncdefstartup_event():print("启动应用程序啦") items["foo"] = {"name":"Fighters"} items["bar"] = {"name":"Tenders"}# 添加在应用程序关闭时运行的函数@app.on_event("shutdown")asyncdefshutdown_...
# file: 45_event.py """ import uvicorn from fastapi import FastAPI app = FastAPI() items = {} # 添加在应用程序启动之前运行的函数 @app.on_event("startup") async def startup_event(): print("启动应用程序啦") items["foo"] = {"name": "Fighters"} ...
@app.on_event("startup")asyncdefstartup_event(): scheduler.add_job(tick,'interval', seconds=3) scheduler.start() 这样就可以每 3 秒执行一次 tick 方法。我们也可以通过 scheduler 的其他方法来设置更复杂的定时任务。 使用celery celery 也是一个非常常用的任务队列,可以配合 FastAPI 使用。
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")defstartup_event():print("startup") @app.on_event("shutdown")defshutdown_event():print("shutdown") 其实很简单,我们注入这两个事件即可完成。在结束的时候,我们如果用IO的操作那么必须走同步的方式,不能用异步的方式。
@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...