feat: improve generation analytics and maintenance
This commit is contained in:
30
backend/app/tasks/generation_maintenance.py
Normal file
30
backend/app/tasks/generation_maintenance.py
Normal 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
|
||||
Reference in New Issue
Block a user