57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
import logging
|
|
from apscheduler.schedulers.blocking import BlockingScheduler
|
|
|
|
import EnergyPriceScraperFactory
|
|
import app_impl
|
|
|
|
from utils.logging import setup_logging
|
|
from utils.time import WARSAW_TZ
|
|
|
|
from app_impl import hourly_tick
|
|
from utils.logging import function_logger
|
|
|
|
import datetime
|
|
|
|
setup_logging(logging.DEBUG)
|
|
sched = BlockingScheduler(timezone=WARSAW_TZ)
|
|
|
|
def run(name: str):
|
|
log = function_logger()
|
|
log.info(f"Running {name}")
|
|
try:
|
|
conn = EnergyPriceScraperFactory.setup_db()
|
|
pstryk_scraper = EnergyPriceScraperFactory.create(name, conn=conn)
|
|
# 11:30 and hourly safety check
|
|
hourly_tick(pstryk_scraper)
|
|
except Exception as e:
|
|
log.error(f"{name} throw an exception: {e}")
|
|
|
|
|
|
# def run_arbitrary(name: str, date):
|
|
# log = function_logger()
|
|
# log.info(f"Running {name}")
|
|
# try:
|
|
# conn = EnergyPriceScraperFactory.setup_db()
|
|
# pstryk_scraper = EnergyPriceScraperFactory.create(name, conn=conn)
|
|
# # 11:30 and hourly safety check
|
|
# app_impl.date_run_tick(pstryk_scraper, date)
|
|
# except Exception as e:
|
|
# log.error(f"{name} throw an exception: {e}")
|
|
|
|
|
|
def run_pstryk():
|
|
run("Pstryk")
|
|
|
|
def run_PSE_RCE():
|
|
run("PSE_RCE")
|
|
|
|
def run_TGE_RDN():
|
|
run("TGE_RDN")
|
|
|
|
# Daily triggers at exact local times (DST-safe)
|
|
sched.add_job(run_pstryk, 'cron', hour='*', minute='35')
|
|
sched.add_job(run_PSE_RCE, 'cron', hour='*', minute='35')
|
|
sched.add_job(run_TGE_RDN, 'cron', hour='*', minute='25')
|
|
|
|
sched.start()
|