31 lines
844 B
Python
31 lines
844 B
Python
# Проверка API и БД.
|
|
|
|
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("MOBILEDE_scraper.api.health")
|
|
|
|
|
|
@router.get("/health")
|
|
def health_check(persistence: PersistenceService = Depends(get_persistence)):
|
|
# Проверяем доступность БД.
|
|
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": "mobilede-scraper-api",
|
|
"database": "connected" if db_ok else "unavailable",
|
|
}
|