openreplay/api/crons/core_dynamic_crons.py
Shekar Siri 860cb93b3d
feat(api): assist stats (#1504)
* feat(api): assist stats - api - swagger

* feat(api): assist stats - api - swagger

* feat(api): assist stats - api - swagger

* feat(api): assist stats - sort options and date updates

* feat(api): assist stats - sort options and date updates

* feat(api): api assist stats

* feat(api): api assist stats - schema validation and sort options

* feat(api): assist stats - top members updated

* feat(api): assist stats - top members updated and avg

* feat(api): assist stats - averages

* feat(api): assist stats - averages

* feat(api): assist stats - unique team members

* feat(api): assist stats - aggregate assist stats periodically

* feat(api): assist stats - sql
2023-10-09 10:55:02 +02:00

46 lines
1.5 KiB
Python

from apscheduler.triggers.cron import CronTrigger
from apscheduler.triggers.interval import IntervalTrigger
from chalicelib.core import telemetry
from chalicelib.core import weekly_report, jobs, health
from chalicelib.core import assist_stats
async def run_scheduled_jobs() -> None:
jobs.execute_jobs()
async def weekly_report_cron() -> None:
weekly_report.cron()
async def telemetry_cron() -> None:
telemetry.compute()
async def health_cron() -> None:
health.cron()
async def weekly_health_cron() -> None:
health.weekly_cron()
async def assist_events_aggregates_cron() -> None:
assist_stats.insert_aggregated_data()
cron_jobs = [
{"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_cron, "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},
{"func": assist_events_aggregates_cron,
"trigger": IntervalTrigger(hours=1, start_date="2023-04-01 0:0:0", jitter=10), }
]