fix scheduler: use apscheduler instead of schedule

This commit is contained in:
flo-eberle
2026-02-15 12:36:08 +01:00
parent f6c7d6690e
commit caaf96c6b3

View File

@@ -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()
while True:
time.sleep(60) # Check every minute
except KeyboardInterrupt:
print('\n👋 Scheduler stopped by user.')
break
scheduler.shutdown()
except Exception as e:
logging.error(f"Scheduler error: {e}")
time.sleep(300) # Wait 5 minutes on error
scheduler.shutdown()
raise
if __name__ == "__main__":
main()