Some checks are pending
Build and Push Docker Images / changes (push) Waiting to run
Build and Push Docker Images / build-backend (push) Blocked by required conditions
Build and Push Docker Images / build-frontend (push) Blocked by required conditions
Build and Push Docker Images / build-admin-frontend (push) Blocked by required conditions
30 lines
985 B
Python
30 lines
985 B
Python
|
|
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.memory_service import prune_expired_memories
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
@celery_app.task
|
|
def prune_memories_task():
|
|
"""Daily task to prune expired memories."""
|
|
logger.info("prune_memories_task_started")
|
|
|
|
async def _run():
|
|
# Ensure engine is initialized in this process
|
|
session_factory = _get_session_factory()
|
|
async with session_factory() as session:
|
|
return await prune_expired_memories(session)
|
|
|
|
try:
|
|
# Create a new event loop for this task execution
|
|
count = asyncio.run(_run())
|
|
logger.info("prune_memories_task_completed", deleted_count=count)
|
|
return f"Deleted {count} expired memories"
|
|
except Exception as exc:
|
|
logger.error("prune_memories_task_failed", error=str(exc))
|
|
raise
|