🔍 버전 비교: fastapi-lifespan
히스토리로 돌아가기
추가된 줄
삭제된 줄
변경된 줄
버전 4 | 버전 3 | ||||
---|---|---|---|---|---|
70 | 70 | ||||
71 | ## lifespan | 71 | ## lifespan | ||
72 | 72 | ||||
n | 73 | ```python | n | ||
74 | @asynccontextmanager | ||||
75 | async def lifespan(app: FastAPI): | ||||
76 | # Load the ML model | ||||
77 | ml_models["answer_to_everything"] = fake_answer_to_everything_ml_model | ||||
78 | yield | ||||
79 | # Clean up the ML models and release the resources | ||||
80 | ml_models.clear() | ||||
81 | 73 | ||||
t | 82 | t | |||
83 | app = FastAPI(lifespan=lifespan) | ||||
84 | ``` | ||||
85 | |||||
86 | 예시를 보면 알겠지만 윗 내용을 이해했다면 아주 쉬울 것이다. yield 윗 부분의 Model 을 로딩하는 부분이 FastAPI applicat | ||||
> | ion 이 시작되기전에 실행되며, yield 하위 부분은 FastAPI 실행이 끝나면 모델을 정리하게 된다. 즉, 간단하게 표시해보면 아래와 같 | ||||
> | 은 코드임을 생각해 볼 수 있다. | ||||
87 | |||||
88 | ```python | ||||
89 | async with lifespan(): | ||||
90 | fastapi.run() | ||||
91 | ``` | ||||
92 | 74 | ||||
93 | --- | 75 | --- | ||
94 | [^1]: 던더메소드는 객체에 따라 행동이 정해져있는 메소드로 이 객체가 어떤 던더메소드를 가지고 있는지 알기 위해서는 `dir` 함수를 사용하 | 76 | [^1]: 던더메소드는 객체에 따라 행동이 정해져있는 메소드로 이 객체가 어떤 던더메소드를 가지고 있는지 알기 위해서는 `dir` 함수를 사용하 | ||
> | 면 된다. | > | 면 된다. |