Files
expense_monitor/app/services/scheduler.py
Mateusz Gruszczyński 986ffb200a first commit
2026-03-13 15:17:32 +01:00

33 lines
841 B
Python

from __future__ import annotations
from apscheduler.schedulers.background import BackgroundScheduler
from .reporting import send_due_reports
from .settings import get_bool_setting
_scheduler: BackgroundScheduler | None = None
def get_scheduler() -> BackgroundScheduler:
global _scheduler
if _scheduler is None:
_scheduler = BackgroundScheduler(timezone='UTC')
return _scheduler
def start_scheduler(app) -> None:
if app.config.get('TESTING'):
return
if not get_bool_setting('report_scheduler_enabled', False):
return
scheduler = get_scheduler()
if scheduler.running:
return
def _job():
with app.app_context():
send_due_reports()
scheduler.add_job(_job, 'interval', minutes=60, id='send_due_reports', replace_existing=True)
scheduler.start()