import logging import time import schedule from app.api import refresh_scores from app.playoff_cache import refresh_bracket, refresh_round_start_dates from app.standings import refresh_standings logger = logging.getLogger(__name__) def start_scheduler(): schedule.every(600).seconds.do(refresh_standings) schedule.every(10).seconds.do(refresh_scores) schedule.every(3600).seconds.do(refresh_bracket) schedule.every(21600).seconds.do(refresh_round_start_dates) # Populate the cache once at startup so the banner has data immediately. refresh_bracket() refresh_round_start_dates() logger.info("Background scheduler started") while True: try: schedule.run_pending() except Exception: logger.exception("Scheduler encountered an unexpected error") time.sleep(1)