Spaces:
Runtime error
Runtime error
File size: 1,981 Bytes
307cacc ce323cf 307cacc ce323cf 307cacc 9fd6e20 307cacc ce323cf 307cacc ce323cf 307cacc ce323cf 307cacc ce323cf 307cacc ce323cf 307cacc ce323cf 307cacc ce323cf 307cacc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.triggers.cron import CronTrigger
from datetime import datetime
from dependency_injector.wiring import inject, Provide
from loguru import logger
from pytz import timezone
from typing import Optional
from ctp_slack_bot.containers import Container
@inject
def start_scheduler(container: Container) -> AsyncIOScheduler:
"""
Start and configure the APScheduler instance.
Returns:
AsyncIOScheduler: Configured scheduler instance
"""
settings = container.settings() if container else Provide[Container.settings]
zone = settings.SCHEDULER_TIMEZONE
scheduler = AsyncIOScheduler(timezone=timezone(zone))
# Add jobs to the scheduler.
# scheduler.add_job(
# send_error_report,
# CronTrigger(hour=7, minute=0),
# id="daily_error_report",
# name="Daily Error Report",
# replace_existing=True,
# )
# scheduler.add_job(
# cleanup_old_transcripts,
# CronTrigger(day_of_week="sun", hour=1, minute=0),
# id="weekly_transcript_cleanup",
# name="Weekly Transcript Cleanup",
# replace_existing=True,
# )
# Start the scheduler.
scheduler.start()
logger.info("Scheduler started with timezone: {}", settings.SCHEDULER_TIMEZONE)
# logger.info("Next run for error report: {}",
# scheduler.get_job("daily_error_report").next_run_time)
# logger.info("Next run for transcript cleanup: {}",
# scheduler.get_job("weekly_transcript_cleanup").next_run_time)
return scheduler
def stop_scheduler(scheduler: AsyncIOScheduler) -> None:
"""
Shutdown the scheduler gracefully.
Args:
scheduler: The scheduler instance to shut down
"""
if scheduler.running:
logger.info("Shutting down scheduler")
scheduler.shutdown(wait=False)
logger.info("Scheduler shutdown complete")
|