* fix(chalice): fixed Math-operators validation refactor(chalice): search for sessions that have events for heatmaps * refactor(chalice): search for sessions that have at least 1 location event for heatmaps * fix(chalice): fixed Math-operators validation refactor(chalice): search for sessions that have events for heatmaps * refactor(chalice): search for sessions that have at least 1 location event for heatmaps * feat(chalice): autocomplete return top 10 with stats * fix(chalice): fixed autocomplete top 10 meta-filters * fix(alerts): fixed loggers refactor(chalice): refactored health-check logging refactor(chalice): upgraded dependencies refactor(alerts): upgraded dependencies refactor(crons): upgraded dependencies
58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
import logging
|
|
|
|
from apscheduler.triggers.cron import CronTrigger
|
|
from apscheduler.triggers.interval import IntervalTrigger
|
|
from decouple import config
|
|
|
|
from chalicelib.core import jobs
|
|
from chalicelib.core import telemetry, unlock
|
|
from chalicelib.core import weekly_report as weekly_report_script, health
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
async def run_scheduled_jobs() -> None:
|
|
jobs.execute_jobs()
|
|
|
|
|
|
async def weekly_report() -> None:
|
|
weekly_report_script.cron()
|
|
|
|
|
|
async def telemetry_cron() -> None:
|
|
telemetry.compute()
|
|
|
|
|
|
async def unlock_cron() -> None:
|
|
logger.info("validating license")
|
|
unlock.check()
|
|
logger.info(f"valid: {unlock.is_valid()}")
|
|
|
|
|
|
async def health_cron() -> None:
|
|
health.cron()
|
|
|
|
|
|
async def weekly_health_cron() -> None:
|
|
health.weekly_cron()
|
|
|
|
|
|
cron_jobs = [
|
|
{"func": unlock_cron, "trigger": CronTrigger(day="*")},
|
|
]
|
|
|
|
SINGLE_CRONS = [
|
|
{"func": telemetry_cron, "trigger": CronTrigger(day_of_week="*"),
|
|
"misfire_grace_time": 60 * 60, "max_instances": 1},
|
|
{"func": run_scheduled_jobs, "trigger": CronTrigger(day_of_week="*", hour=0, minute=15),
|
|
"misfire_grace_time": 20, "max_instances": 1},
|
|
{"func": weekly_report, "trigger": CronTrigger(day_of_week="mon", hour=5),
|
|
"misfire_grace_time": 60 * 60, "max_instances": 1},
|
|
{"func": health_cron, "trigger": IntervalTrigger(hours=0, minutes=30, start_date="2023-04-01 0:0:0", jitter=300),
|
|
"misfire_grace_time": 60 * 60, "max_instances": 1},
|
|
{"func": weekly_health_cron, "trigger": CronTrigger(day_of_week="sun", hour=5),
|
|
"misfire_grace_time": 60 * 60, "max_instances": 1}
|
|
]
|
|
|
|
if config("LOCAL_CRONS", default=False, cast=bool):
|
|
cron_jobs += SINGLE_CRONS
|