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
반응형
복사했습니다!