feat(crons): run 24/7
feat(alerts): support env-file override
This commit is contained in:
parent
8e1ad7ec3d
commit
45701a6ecc
4 changed files with 34 additions and 18 deletions
|
|
@ -1,19 +1,30 @@
|
|||
print("============= CRONS =============")
|
||||
import sys
|
||||
|
||||
from routers.crons import core_dynamic_crons
|
||||
import logging
|
||||
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from decouple import config
|
||||
from fastapi import FastAPI
|
||||
|
||||
from routers.crons import core_crons, core_dynamic_crons
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
def process(action):
|
||||
{
|
||||
"TELEMETRY": core_dynamic_crons.telemetry_cron,
|
||||
"JOB": core_dynamic_crons.run_scheduled_jobs,
|
||||
"REPORT": core_dynamic_crons.weekly_report2
|
||||
}.get(action.upper(), lambda: print(f"{action} not found in crons-definitions"))()
|
||||
@app.get("/")
|
||||
async def root():
|
||||
return {"status": "Running"}
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) < 2 or len(sys.argv[1]) < 1:
|
||||
print("please provide actions as argument")
|
||||
else:
|
||||
process(sys.argv[1])
|
||||
app.schedule = AsyncIOScheduler()
|
||||
app.schedule.start()
|
||||
|
||||
if not config("LOCAL_CRONS", default=False, cast=bool):
|
||||
for job in core_crons.cron_jobs + core_dynamic_crons.cron_jobs + core_dynamic_crons.SINGLE_CRONS:
|
||||
app.schedule.add_job(id=job["func"].__name__, **job)
|
||||
|
||||
logging.basicConfig(level=config("LOGLEVEL", default=logging.INFO))
|
||||
logging.getLogger('apscheduler').setLevel(config("LOGLEVEL", default=logging.INFO))
|
||||
|
||||
else:
|
||||
print("Nothing to do because LOCAL_CRONS mode is enabled.")
|
||||
|
|
|
|||
3
ee/api/entrypoint_alerts.sh
Executable file
3
ee/api/entrypoint_alerts.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
bash env_vars.sh
|
||||
uvicorn app:app --host 0.0.0.0 --reload
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
bash env_vars.sh
|
||||
python app_crons.py $ACTION
|
||||
uvicorn app:app --host 0.0.0.0 --reload --proxy-headers
|
||||
|
|
|
|||
|
|
@ -26,8 +26,10 @@ cron_jobs = [
|
|||
{"func": unlock_cron, "trigger": "cron", "hour": "*"}
|
||||
]
|
||||
|
||||
SINGLE_CRONS = [{"func": telemetry_cron, "trigger": "cron", "day_of_week": "*"},
|
||||
{"func": run_scheduled_jobs, "trigger": "interval", "seconds": 60, "misfire_grace_time": 20},
|
||||
{"func": weekly_report2, "trigger": "cron", "day_of_week": "mon", "hour": 5,
|
||||
"misfire_grace_time": 60 * 60}]
|
||||
|
||||
if config("LOCAL_CRONS", default=False, cast=bool):
|
||||
cron_jobs += [{"func": telemetry_cron, "trigger": "cron", "day_of_week": "*"},
|
||||
{"func": run_scheduled_jobs, "trigger": "interval", "seconds": 60, "misfire_grace_time": 20},
|
||||
{"func": weekly_report2, "trigger": "cron", "day_of_week": "mon", "hour": 5,
|
||||
"misfire_grace_time": 60 * 60}]
|
||||
cron_jobs += SINGLE_CRONS
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue