mirror of
https://github.com/boostorg/website-v2.git
synced 2026-01-19 04:42:17 +00:00
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from datetime import timedelta
|
|
|
|
import structlog
|
|
from celery import shared_task
|
|
from django.utils import timezone
|
|
|
|
from .constants import ASCIIDOCTOR_SANDBOX_DOCUMENT_RETENTION_DAYS
|
|
from .models import SandboxDocument
|
|
|
|
logger = structlog.get_logger(__name__)
|
|
|
|
|
|
@shared_task
|
|
def cleanup_old_sandbox_documents():
|
|
"""
|
|
Delete sandbox documents last updated before the configured retention period.
|
|
"""
|
|
cutoff_date = timezone.now() - timedelta(
|
|
days=ASCIIDOCTOR_SANDBOX_DOCUMENT_RETENTION_DAYS
|
|
)
|
|
|
|
old_documents = SandboxDocument.objects.filter(updated_at__lt=cutoff_date)
|
|
count = old_documents.count()
|
|
|
|
if count == 0:
|
|
logger.info("No old sandbox documents to clean up")
|
|
return
|
|
|
|
logger.info(
|
|
f"Deleting {count} sandbox documents older than "
|
|
f"{ASCIIDOCTOR_SANDBOX_DOCUMENT_RETENTION_DAYS} days"
|
|
)
|
|
|
|
deleted_count = 0
|
|
for document in old_documents:
|
|
logger.debug(f"Deleting sandbox document {document.id=}")
|
|
document.delete()
|
|
deleted_count += 1
|
|
|
|
logger.info(f"Successfully deleted {deleted_count} old sandbox documents")
|