mirror of https://github.com/openspug/spug
A api add clean alarms job
parent
5a7f1ac7a4
commit
e76ed02787
|
@ -0,0 +1,7 @@
|
||||||
|
from apps.alarm.models import Alarm
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
|
|
||||||
|
def auto_clean_records():
|
||||||
|
date = datetime.now() - timedelta(days=30)
|
||||||
|
Alarm.objects.filter(created_at__lt=date.strftime('%Y-%m-%d')).delete()
|
|
@ -5,6 +5,7 @@ from apscheduler import events
|
||||||
from django_redis import get_redis_connection
|
from django_redis import get_redis_connection
|
||||||
from apps.schedule.models import Task
|
from apps.schedule.models import Task
|
||||||
from apps.schedule.executors import dispatch
|
from apps.schedule.executors import dispatch
|
||||||
|
from apps.alarm.utils import auto_clean_records
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from libs import AttrDict, human_time
|
from libs import AttrDict, human_time
|
||||||
import logging
|
import logging
|
||||||
|
@ -40,17 +41,22 @@ class Scheduler:
|
||||||
if event.code == events.EVENT_JOB_MISSED:
|
if event.code == events.EVENT_JOB_MISSED:
|
||||||
logger.info(f'EVENT_JOB_MISSED: job_id {event.job_id}')
|
logger.info(f'EVENT_JOB_MISSED: job_id {event.job_id}')
|
||||||
if event.code == events.EVENT_JOB_EXECUTED:
|
if event.code == events.EVENT_JOB_EXECUTED:
|
||||||
score = 0
|
if event.retval:
|
||||||
for item in event.retval:
|
score = 0
|
||||||
score += 1 if item[1] else 0
|
for item in event.retval:
|
||||||
Task.objects.filter(pk=event.job_id).update(
|
score += 1 if item[1] else 0
|
||||||
latest_status=2 if score == len(event.retval) else 1 if score else 0,
|
Task.objects.filter(pk=event.job_id).update(
|
||||||
latest_run_time=human_time(event.scheduled_run_time),
|
latest_status=2 if score == len(event.retval) else 1 if score else 0,
|
||||||
latest_output=json.dumps(event.retval)
|
latest_run_time=human_time(event.scheduled_run_time),
|
||||||
)
|
latest_output=json.dumps(event.retval)
|
||||||
|
)
|
||||||
|
|
||||||
|
def _init_builtin_jobs(self):
|
||||||
|
self.scheduler.add_job(auto_clean_records, 'cron', hour=0, minute=0)
|
||||||
|
|
||||||
def _init(self):
|
def _init(self):
|
||||||
self.scheduler.start()
|
self.scheduler.start()
|
||||||
|
self._init_builtin_jobs()
|
||||||
for task in Task.objects.filter(is_active=True):
|
for task in Task.objects.filter(is_active=True):
|
||||||
trigger = self.parse_trigger(task.trigger, task.trigger_args)
|
trigger = self.parse_trigger(task.trigger, task.trigger_args)
|
||||||
self.scheduler.add_job(
|
self.scheduler.add_job(
|
||||||
|
|
Loading…
Reference in New Issue