feat: improve generation analytics and maintenance

This commit is contained in:
2026-04-19 09:03:40 +08:00
parent d5a173aa0d
commit 5318de670f
21 changed files with 1155 additions and 57 deletions

View File

@@ -0,0 +1,30 @@
"""Generation job maintenance tasks."""
import asyncio
from app.core.celery_app import celery_app
from app.core.logging import get_logger
from app.db.database import _get_session_factory
from app.services.generation_jobs import mark_stale_generation_jobs
logger = get_logger(__name__)
@celery_app.task
def prune_stale_generation_jobs_task():
"""Periodically mark stale running generation jobs as failed."""
logger.info("prune_stale_generation_jobs_task_started")
async def _run():
session_factory = _get_session_factory()
async with session_factory() as session:
return await mark_stale_generation_jobs(session)
try:
result = asyncio.run(_run())
logger.info("prune_stale_generation_jobs_task_completed", **result)
return result
except Exception as exc:
logger.error("prune_stale_generation_jobs_task_failed", error=str(exc))
raise