mirror of https://github.com/openspug/spug
fix issue
parent
6ee42484e5
commit
f8da39760b
|
@ -27,6 +27,7 @@ import json
|
||||||
class Scheduler:
|
class Scheduler:
|
||||||
timezone = settings.TIME_ZONE
|
timezone = settings.TIME_ZONE
|
||||||
week_map = {
|
week_map = {
|
||||||
|
'-': '-',
|
||||||
'*': '*',
|
'*': '*',
|
||||||
'7': '6',
|
'7': '6',
|
||||||
'0': '6',
|
'0': '6',
|
||||||
|
@ -44,6 +45,10 @@ class Scheduler:
|
||||||
self._handle_event,
|
self._handle_event,
|
||||||
EVENT_SCHEDULER_SHUTDOWN | EVENT_JOB_ERROR | EVENT_JOB_MAX_INSTANCES | EVENT_JOB_EXECUTED)
|
EVENT_SCHEDULER_SHUTDOWN | EVENT_JOB_ERROR | EVENT_JOB_MAX_INSTANCES | EVENT_JOB_EXECUTED)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def covert_week(cls, week_str):
|
||||||
|
return ''.join(map(lambda x: cls.week_map[x], week_str))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def parse_trigger(cls, trigger, trigger_args):
|
def parse_trigger(cls, trigger, trigger_args):
|
||||||
if trigger == 'interval':
|
if trigger == 'interval':
|
||||||
|
@ -53,7 +58,7 @@ class Scheduler:
|
||||||
elif trigger == 'cron':
|
elif trigger == 'cron':
|
||||||
args = json.loads(trigger_args) if not isinstance(trigger_args, dict) else trigger_args
|
args = json.loads(trigger_args) if not isinstance(trigger_args, dict) else trigger_args
|
||||||
minute, hour, day, month, week = args['rule'].split()
|
minute, hour, day, month, week = args['rule'].split()
|
||||||
week = cls.week_map[week]
|
week = cls.covert_week(week)
|
||||||
return CronTrigger(minute=minute, hour=hour, day=day, month=month, day_of_week=week,
|
return CronTrigger(minute=minute, hour=hour, day=day, month=month, day_of_week=week,
|
||||||
start_date=args['start'], end_date=args['stop'])
|
start_date=args['start'], end_date=args['stop'])
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -150,7 +150,7 @@ def next_run_time(request):
|
||||||
if error is None:
|
if error is None:
|
||||||
try:
|
try:
|
||||||
minute, hour, day, month, week = form.rule.split()
|
minute, hour, day, month, week = form.rule.split()
|
||||||
week = Scheduler.week_map[week]
|
week = Scheduler.covert_week(week)
|
||||||
trigger = CronTrigger(minute=minute, hour=hour, day=day, month=month, day_of_week=week,
|
trigger = CronTrigger(minute=minute, hour=hour, day=day, month=month, day_of_week=week,
|
||||||
start_date=form.start, end_date=form.stop)
|
start_date=form.start, end_date=form.stop)
|
||||||
except (ValueError, KeyError):
|
except (ValueError, KeyError):
|
||||||
|
|
Loading…
Reference in New Issue