34 lines
1.4 KiB
Python
Executable File
34 lines
1.4 KiB
Python
Executable File
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
|
from apscheduler.triggers.date import DateTrigger
|
|
from datetime import datetime, timedelta
|
|
from scheduler.refresh_sharepoint_content_job import refresh_sharepoint_content_job
|
|
from scheduler.cleanup_document_job import cleanup_document_job
|
|
from common.log.log_utils import log_entry_exit_async
|
|
from scheduler.constants import ScheduleJobLocker
|
|
from scheduler.schedule_job_locker import init_lock
|
|
|
|
|
|
@log_entry_exit_async
|
|
async def create_scheduler() -> AsyncIOScheduler:
|
|
scheduler: AsyncIOScheduler = AsyncIOScheduler()
|
|
await register_job(scheduler)
|
|
return scheduler
|
|
|
|
|
|
@log_entry_exit_async
|
|
async def register_job(scheduler):
|
|
await init_lock(ScheduleJobLocker.REFRESH_SHAREPOINT_CONTENT_JOB_LOCKER)
|
|
scheduler.add_job(refresh_sharepoint_content_job, "interval", seconds=(3600 + 3))
|
|
# Register cleanup_document_job as a one-time job
|
|
# This job is just one-time job for removing many unused documents
|
|
# Run already, now comment it out
|
|
# await init_lock(ScheduleJobLocker.CLEANUP_DOCUMENT_JOB_LOCKER)
|
|
# execution_time = datetime.now() + timedelta(
|
|
# seconds=60
|
|
# ) # Schedule to run 60 seconds from now
|
|
# scheduler.add_job(
|
|
# cleanup_document_job, # Job function
|
|
# trigger=DateTrigger(run_date=execution_time), # One-time trigger
|
|
# id="cleanup_document_one_time", # Optional: Give the job an ID
|
|
# )
|