Trung BìnhFastAPI iconFastAPI

Health check trong FastAPI nên tách liveness và readiness như thế nào?

Liveness trả lời câu hỏi process còn sống không, nên đơn giản và ít dependency. Readiness trả lời app đã sẵn sàng nhận traffic chưa, có thể kiểm database/cache/critical dependency.

Ví dụ:

python
@app.get("/health/live")
async def live():
    return {"status": "ok"}

@app.get("/health/ready")
async def ready(db: Annotated[AsyncSession, Depends(get_db)]):
    await db.execute(text("SELECT 1"))
    return {"status": "ready"}

Nếu readiness fail, orchestrator nên ngừng route traffic nhưng không nhất thiết restart process ngay.

Xem toàn bộ FastAPI cùng filter theo level & chủ đề con.

Mở danh sách FastAPI