freeleaps-service-hub/apps/content/scheduler/cleanup_document_job.py
2025-01-31 08:47:58 +00:00

28 lines
1.1 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()
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.")