Sobes.tech
Middle
50

Wat is lifespan in FastAPI? Welke mechanismen zijn er om code uit te voeren vóór de start en na het stoppen van de applicatie?

Bedrijven waar gevraagd werd
СБЕРСБЕР

Antwoord van AI

sobes.tech AI

В FastAPI lifespan — это механизм управления жизненным циклом приложения, позволяющий выполнять код при старте и завершении работы сервера.

Для выполнения кода перед запуском и после остановки приложения используются специальные функции, которые можно определить с помощью контекстного менеджера или декоратора @app.on_event:

  • @app.on_event("startup") — код, который выполняется при запуске приложения.
  • @app.on_event("shutdown") — код, который выполняется при остановке приложения.

Пример с использованием событий:

from fastapi import FastAPI

app = FastAPI()

@app.on_event("startup")
async def startup_event():
    print("Приложение запускается: инициализация ресурсов")

@app.on_event("shutdown")
async def shutdown_event():
    print("Приложение останавливается: освобождение ресурсов")

Также в FastAPI 0.70+ появился параметр lifespan, который позволяет задать асинхронный контекстный менеджер для более гибкого управления жизненным циклом:

from contextlib import asynccontextmanager
from fastapi import FastAPI

@asynccontextmanager
def lifespan(app: FastAPI):
    # Код при старте
    print("Запуск")
    yield
    # Код при остановке
    print("Остановка")

app = FastAPI(lifespan=lifespan)

Таким образом, lifespan — это современный способ централизованно управлять стартом и остановкой приложения, а @app.on_event — более традиционный способ для тех же целей.