import os from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.triggers.interval import IntervalTrigger from sqlalchemy.orm import sessionmaker from app.db.session import engine from app.services.website_checker import check_all_active_websites scheduler = BackgroundScheduler() SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) def scheduled_website_check(): db = SessionLocal() try: check_all_active_websites(db) finally: db.close() def start_scheduler(): check_interval = int(os.getenv("CHECK_INTERVAL_MINUTES", "5")) scheduler.add_job( func=scheduled_website_check, trigger=IntervalTrigger(minutes=check_interval), id='website_check_job', name='Check websites for updates', replace_existing=True ) scheduler.start() print(f"Scheduler started - checking websites every {check_interval} minutes") def stop_scheduler(): scheduler.shutdown()