使用app.on_event(“startup”) 装饰器注册服务启动事件,可以注册多个服务启动事件 服务启动后,等所有被注册的 startup事件都执行完成后,才开始接收请求 应用场景:初始化db,初始化外部API连接等等 from fastapi import FastAPI app = FastAPI() items = {} @app.on_event("startup") async def startup_event(...
app = FastAPI() # 启动事件 @app.on_event("startup") async def initialize(request: Request): request.state.engine = await db.set_bind("mysql+mysqldb://root:123456@localhost/foo") # 关闭事件 @app.on_event("shutdown") async def destory(request: Request): await request.state.engine....
app=FastAPI()@app.on_event("startup")defstartup_event():print("startup")@app.on_event("shutdown")defshutdown_event():print("shutdown") 其实很简单,我们注入这两个事件即可完成。在结束的时候,我们如果用IO的操作那么必须走同步的方式,不能用异步的方式。 那么这些我们在实际的工作中如何使用呢,举...
app =FastAPI() @app.on_event("startup")defstartup_event():print("startup") @app.on_event("shutdown")defshutdown_event():print("shutdown") 其实很简单,我们注入这两个事件即可完成。在结束的时候,我们如果用IO的操作那么必须走同步的方式,不能用异步的方式。 那么这些我们在实际的工作中如何使用...
app = FastAPI()@app.on_event("startup")def startup_event():print("startup")@app.on_event("shutdown")def shutdown_event():print("shutdown") 其实很简单,我们注入这两个事件即可完成。在结束的时候,我们如果用IO的操作那么必须走同步的方式,不能用异步的方式。
app = FastAPI() @app.on_event("startup") async def app_start(): scheduler.add_job(execute_periodic_function, 'interval', seconds=3) scheduler.start() 2. 使用 Celery Celery 是一个高效的分布式任务队列系统,可与 FastAPI 无缝集成。
app = FastAPI() # 启动事件 @app.on_event("startup") async def initialize(request: Request): request.state.engine = await db.set_bind("mysql+mysqldb://root:123456@localhost/foo") # 关闭事件 @app.on_event("shutdown") async def destory(request: Request): ...
app = FastAPI() @app.on_event("startup") async def app_start(): scheduler.add_job(execute_periodic_function, 'interval', seconds=3) scheduler.start() 2. 使用 Celery Celery 是一个高效的分布式任务队列系统,可与 FastAPI 无缝集成。
第一版实现:FastAPI 的on_event装饰器 @app.on_event("startup")defstart_command_listener():asyncio.create_task(commandA(a_queue))asyncio.create_task(commandB(b_queue))asyncio.create_task(commandC(c_queue))if__name__=="__main__":uvicorn.run(app=app,port=9000) ...
on_event("startup") async def startup_event(): # Code to run on startup pass @app.on_event("shutdown") async def shutdown_event(): # Code to run on shutdown pass 请注意,这些启动和关闭事件只会在主应用中执行,而不会在子应用中执行。 结语 通过使用 FastAPI 的生命周期功能,开发者...