diff --git a/src/scheduler.py b/src/scheduler.py index fe4f02c..e1c6f29 100755 --- a/src/scheduler.py +++ b/src/scheduler.py @@ -4,9 +4,9 @@ Scheduler script for Flat Scraper Runs every 6 hours and sends notifications for new results """ -import schedule import time import logging +from apscheduler.schedulers.background import BackgroundScheduler from src.main import FlatScraper # Configure logging @@ -28,24 +28,30 @@ def main(): print('šŸ• Scheduler started. Running every 6 hours.') print('šŸ  Flat Scraper will check for new apartments automatically.') + # Create scheduler + scheduler = BackgroundScheduler() + # Schedule every 6 hours - schedule.every(6).hours.do(run_scraper) + scheduler.add_job(run_scraper, 'interval', hours=6) + + # Start scheduler + scheduler.start() # Run immediately on start print('šŸš€ Running initial scrape...') run_scraper() # Keep running - while True: - try: - schedule.run_pending() + try: + while True: time.sleep(60) # Check every minute - except KeyboardInterrupt: - print('\nšŸ‘‹ Scheduler stopped by user.') - break - except Exception as e: - logging.error(f"Scheduler error: {e}") - time.sleep(300) # Wait 5 minutes on error + except KeyboardInterrupt: + print('\nšŸ‘‹ Scheduler stopped by user.') + scheduler.shutdown() + except Exception as e: + logging.error(f"Scheduler error: {e}") + scheduler.shutdown() + raise if __name__ == "__main__": main()