mirror of https://github.com/openspug/spug
parent
f421729752
commit
5bd1f48172
|
@ -7,6 +7,7 @@ from apscheduler.triggers.interval import IntervalTrigger
|
||||||
from django_redis import get_redis_connection
|
from django_redis import get_redis_connection
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import connections
|
from django.db import connections
|
||||||
|
from django.db.utils import DatabaseError
|
||||||
from apps.monitor.models import Detection
|
from apps.monitor.models import Detection
|
||||||
from libs import AttrDict, human_datetime
|
from libs import AttrDict, human_datetime
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
@ -32,17 +33,20 @@ class Scheduler:
|
||||||
|
|
||||||
def _init(self):
|
def _init(self):
|
||||||
self.scheduler.start()
|
self.scheduler.start()
|
||||||
for item in Detection.objects.filter(is_active=True):
|
try:
|
||||||
now = datetime.now()
|
for item in Detection.objects.filter(is_active=True):
|
||||||
trigger = IntervalTrigger(minutes=int(item.rate), timezone=self.timezone)
|
now = datetime.now()
|
||||||
self.scheduler.add_job(
|
trigger = IntervalTrigger(minutes=int(item.rate), timezone=self.timezone)
|
||||||
self._dispatch,
|
self.scheduler.add_job(
|
||||||
trigger,
|
self._dispatch,
|
||||||
id=str(item.id),
|
trigger,
|
||||||
args=(item.id, item.type, item.targets, item.extra, item.threshold, item.quiet),
|
id=str(item.id),
|
||||||
next_run_time=now + timedelta(seconds=randint(0, 60))
|
args=(item.id, item.type, item.targets, item.extra, item.threshold, item.quiet),
|
||||||
)
|
next_run_time=now + timedelta(seconds=randint(0, 60))
|
||||||
connections.close_all()
|
)
|
||||||
|
connections.close_all()
|
||||||
|
except DatabaseError:
|
||||||
|
pass
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
rds_cli = get_redis_connection()
|
rds_cli = get_redis_connection()
|
||||||
|
|
|
@ -8,6 +8,7 @@ from apscheduler.triggers.date import DateTrigger
|
||||||
from apscheduler.triggers.cron import CronTrigger
|
from apscheduler.triggers.cron import CronTrigger
|
||||||
from django_redis import get_redis_connection
|
from django_redis import get_redis_connection
|
||||||
from django.db import connections
|
from django.db import connections
|
||||||
|
from django.db.utils import DatabaseError
|
||||||
from apps.schedule.models import Task, History
|
from apps.schedule.models import Task, History
|
||||||
from apps.schedule.builtin import auto_run_by_day, auto_run_by_minute
|
from apps.schedule.builtin import auto_run_by_day, auto_run_by_minute
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
@ -78,15 +79,18 @@ class Scheduler:
|
||||||
def _init(self):
|
def _init(self):
|
||||||
self.scheduler.start()
|
self.scheduler.start()
|
||||||
self._init_builtin_jobs()
|
self._init_builtin_jobs()
|
||||||
for task in Task.objects.filter(is_active=True):
|
try:
|
||||||
trigger = self.parse_trigger(task.trigger, task.trigger_args)
|
for task in Task.objects.filter(is_active=True):
|
||||||
self.scheduler.add_job(
|
trigger = self.parse_trigger(task.trigger, task.trigger_args)
|
||||||
self._dispatch,
|
self.scheduler.add_job(
|
||||||
trigger,
|
self._dispatch,
|
||||||
id=str(task.id),
|
trigger,
|
||||||
args=(task.id, task.command, json.loads(task.targets)),
|
id=str(task.id),
|
||||||
)
|
args=(task.id, task.command, json.loads(task.targets)),
|
||||||
connections.close_all()
|
)
|
||||||
|
connections.close_all()
|
||||||
|
except DatabaseError:
|
||||||
|
pass
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
rds_cli = get_redis_connection()
|
rds_cli = get_redis_connection()
|
||||||
|
|
Loading…
Reference in New Issue