47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
from app.core.logging_config import get_logger
|
|
from app.workers.celery_app import celery_app
|
|
from app.core.database import get_db_context
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
|
|
@celery_app.task(
|
|
name="app.tasks.maintenance_tasks.cleanup_expired_tokens",
|
|
bind=True,
|
|
)
|
|
def cleanup_expired_tokens(self) -> dict: # noqa: ANN001
|
|
"""Cleanup expired and revoked refresh tokens."""
|
|
logger.info("cleanup_tokens_started", task_id=self.request.id)
|
|
|
|
try:
|
|
with get_db_context() as db:
|
|
from app.repositories.user_repository import RefreshTokenRepository
|
|
repo = RefreshTokenRepository(db)
|
|
count = repo.cleanup_expired_tokens()
|
|
logger.info("cleanup_tokens_completed", removed=count)
|
|
return {"removed_tokens": count}
|
|
except Exception as exc:
|
|
logger.exception("cleanup_tokens_failed", error=str(exc))
|
|
return {"error": str(exc)}
|
|
|
|
|
|
@celery_app.task(
|
|
name="app.tasks.maintenance_tasks.cleanup_temp_storage",
|
|
bind=True,
|
|
)
|
|
def cleanup_temp_storage(self) -> dict: # noqa: ANN001
|
|
"""Cleanup temporary storage files."""
|
|
logger.info("cleanup_temp_started", task_id=self.request.id)
|
|
|
|
try:
|
|
from app.storage.provider import get_storage_provider
|
|
storage = get_storage_provider()
|
|
count = storage.cleanup_temp()
|
|
logger.info("cleanup_temp_completed", removed=count)
|
|
return {"removed_files": count}
|
|
except Exception as exc:
|
|
logger.exception("cleanup_temp_failed", error=str(exc))
|
|
return {"error": str(exc)}
|