32 lines
1.2 KiB
Python
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.")
|