개발/FastAPI
FastAPI Event Handlers (on_event)
남제이입니다!
2023. 8. 13. 17:51
728x90
반응형
FastAPI 에서 애플리케이션이 시작하기 전에 실행하거나 애플리케이션이 종료될 때 event handlers 를 정의할 수 있다.
이벤트 헨들러는 async def 또는 def 로 정의할 수 있다.
FastAPI 의 아래의 문서에서 확인할 수 있다.
https://fastapi.tiangolo.com/ko/advanced/events/?h=event
Lifespan Events - FastAPI
FastAPI framework, high performance, easy to learn, fast to code, ready for production
fastapi.tiangolo.com
FastAPI 의 예제를 살펴보면 다음과 같다.
startup event
애플리케이션이 시작되기 전에 실행되는 함수를 추가할 수 있다.
예제에서는 애플리케이션이 시작되기 전에 딕셔너리의 아이템을 초기화하는 함수를 실행하게 된다.
from fastapi import FastAPI
app = FastAPI()
items = {}
@app.on_event("startup")
async def startup_event():
items["foo"] = {"name": "Fighters"}
items["bar"] = {"name": "Tenders"}
@app.get("/items/{item_id}")
async def read_items(item_id: str):
return items[item_id]
shutdown event
애플리케이션이 종료될 때 실행되는 함수를 추가할 수 있다.
예제에서는 애플리케이션이 종료되면서 로그 텍스트 파일을 작성하고 있다.
from fastapi import FastAPI
app = FastAPI()
@app.on_event("shutdown")
def shutdown_event():
with open("log.txt", mode="a") as log:
log.write("Application shutdown")
@app.get("/items/")
async def read_items():
return [{"name": "Foo"}]
728x90
반응형