31 lines
892 B
Python
31 lines
892 B
Python
# Роут проверки доступности сервиса и соединения с БД.
|
||
|
||
import logging
|
||
|
||
from fastapi import APIRouter, Depends
|
||
from sqlalchemy import text
|
||
|
||
from ..deps import get_persistence
|
||
from ...storage.db import PersistenceService
|
||
|
||
router = APIRouter()
|
||
logger = logging.getLogger("dubizzle_scraper.api.health")
|
||
|
||
|
||
@router.get("/health")
|
||
def health_check(persistence: PersistenceService = Depends(get_persistence)):
|
||
# Проверка API и БД
|
||
db_ok = False
|
||
try:
|
||
with persistence.session_scope() as session:
|
||
session.execute(text("SELECT 1"))
|
||
db_ok = True
|
||
except Exception:
|
||
logger.warning("Health DB check failed", exc_info=True)
|
||
|
||
return {
|
||
"status": "ok" if db_ok else "degraded",
|
||
"service": "dubizzle-scraper-api",
|
||
"database": "connected" if db_ok else "unavailable",
|
||
}
|