FastAPI - 事件处理器



事件处理器是在发生特定已识别事件时要执行的函数。在 FastAPI 中,已识别两个此类事件- 启动关闭。FastAPI 的应用程序对象具有on_event()装饰器,它使用这些事件之一作为参数。使用此装饰器注册的函数在发生相应的事件时触发。

启动事件发生在开发服务器启动之前,注册的函数通常用于执行某些初始化任务,例如建立与数据库的连接等。关闭事件的事件处理器在应用程序关闭之前立即调用。

示例

这是一个启动和关闭事件处理器的简单示例。当应用程序启动时,启动时间会在控制台日志中回显。类似地,当通过按 ctrl+c 停止服务器时,也会显示关闭时间。

main.py

from fastapi import FastAPI
import datetime
app = FastAPI()
@app.on_event("startup")
async def startup_event():
   print('Server started :', datetime.datetime.now())
@app.on_event("shutdown")
async def shutdown_event():
   print('server Shutdown :', datetime.datetime.now())

输出

它将产生以下输出:

uvicorn main:app --reload
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [28720]
INFO: Started server process [28722]
INFO: Waiting for application startup.
Server started: 2021-11-23 23:51:45.907691
INFO: Application startup complete.
INFO: Shutting down
INFO: Waiting for application
server Shutdown: 2021-11-23 23:51:50.82955
INFO: Application shutdown com
INFO: Finished server process
广告