[FastAPI] Lifespan : 생명주기 이벤트 관리
·
Back/FastAPI
Lifespan애플리케이션 시작 전에 실행되어야 하는 로직이나 종료될 때 실행되어야 하는 로직을 관리하는 애플리케이션의 수명(Lifespan)을 관리하는 방법왜 필요한가?애플리케이션이 사용해야 하는 리소스를 초기화하거나 설정하고, 마무리에 정리하는데 활용할 수 있음.DB 커넥션풀 관리하는 것처럼 활용될 수 있겠죠.사용방법from contextlib import asynccontextmanagerfrom fastapi import FastAPIasync def start(): print("service is started.") def shutdown(): print("service is stopped.") @asynccontextmanagerasync def lifespan(app: ..
[FastAPI] Uvicorn / Gunicorn
·
Back/FastAPI
Uvicorn / Gunicorn1. UvicornFastAPI의 비동기 기능을 지원하는 ASGI 서버로서 실제 요청/응답을 처리.ASGI ↔ WSGI단독 실행 시 단일 프로세스만 사용 → 병목 발생 가능.2. Gunicorn여러 개의 워커 프로세스를 띄워 병렬 요청 처리를 가능하게 함.CPU 코어 수에 따라 워커를 나눠서 트래픽을 분산시켜 성능 향상.`gunicorn` + `uvicorn.workers.UvicornWorker` 조합gunicorn app.main:app -k uvicorn.workers.UvicornWorker --workers 4 --bind 0.0.0.0:8000gunicorn이 여러 워커 프로세스를 실행각 워커는 uvicorn을 내부적으로 실행비동기 처리(uvicorn) + 병렬..