power-compare/app/scheduler/setup.py
dlawler489 84c4922bbc Initial commit: solar usage vs AER plan comparison app
FastAPI app that pulls interval usage from Sungrow iSolarCloud (OAuth2),
caches AER Consumer Data Right electricity plan data, and compares actual
metered usage against every available plan to estimate real annual cost
(TOU, tiered feed-in, and flat tariffs).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-09 11:07:01 +10:00

30 lines
956 B
Python

from __future__ import annotations
from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.interval import IntervalTrigger
from app.config import settings
from app.scheduler.jobs import poll_isolarcloud_job, refresh_aer_plans_job
def build_scheduler() -> BackgroundScheduler:
scheduler = BackgroundScheduler()
scheduler.add_job(
poll_isolarcloud_job,
trigger=IntervalTrigger(minutes=settings.isolarcloud_poll_interval_minutes),
id="poll_isolarcloud",
next_run_time=datetime.now(), # run once immediately on startup
max_instances=1,
coalesce=True,
)
scheduler.add_job(
refresh_aer_plans_job,
trigger=IntervalTrigger(hours=settings.aer_refresh_interval_hours),
id="refresh_aer_plans",
next_run_time=datetime.now(),
max_instances=1,
coalesce=True,
)
return scheduler