freeleaps-service-hub/apps/content/scheduler/cleanup_document_job.py
2025-01-31 07:03:27 +00:00

32 lines
1.2 KiB
Python

import logging
from scheduler.constants import ScheduleJobLocker
from scheduler.schedule_job_locker import acquire_lock, release_lock
from backend.document.document_manager import DocumentManager
async def cleanup_document_job():
if await acquire_lock(ScheduleJobLocker.CLEANUP_DOCUMENT_JOB_LOCKER, 3600):
try:
logging.info("Starting job to clean up documents.")
document_manager = DocumentManager()
# Monitor execution time
start_time = logging.getLogger().handlers[0].formatter.converter()
logging.info(f"Job started at {start_time}")
await document_manager.cleanup_document()
logging.info("Successfully completed cleanup document job.")
except Exception as e:
# Log any unexpected exceptions
logging.error(
f"Error occurred during cleanup_document_job: {e}", exc_info=True
)
finally:
# Ensure the lock is released even if an exception occurs
await release_lock(ScheduleJobLocker.CLEANUP_DOCUMENT_JOB_LOCKER)
logging.info("Lock released for cleanup_document_job.")
else:
logging.info("The cleanup document job is locked by another process.")