Automated Action b852025088 Create Website Update Alert Service
- FastAPI application that monitors websites for updates
- SQLite database with Website and WebsiteAlert models
- REST API endpoints for website management and alerts
- Background scheduler for automatic periodic checks
- Content hashing to detect website changes
- Health check endpoint and comprehensive documentation
- Alembic migrations for database schema management
- CORS middleware for cross-origin requests
- Environment variable configuration support

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-27 10:57:32 +00:00

33 lines
1003 B
Python

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()