From f8da39760ba7f369494769204b636ccb5aab4e43 Mon Sep 17 00:00:00 2001 From: vapao Date: Sat, 10 Jul 2021 18:31:49 +0800 Subject: [PATCH] fix issue --- spug_api/apps/schedule/scheduler.py | 7 ++++++- spug_api/apps/schedule/views.py | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/spug_api/apps/schedule/scheduler.py b/spug_api/apps/schedule/scheduler.py index c0ce920..1b5ca71 100644 --- a/spug_api/apps/schedule/scheduler.py +++ b/spug_api/apps/schedule/scheduler.py @@ -27,6 +27,7 @@ import json class Scheduler: timezone = settings.TIME_ZONE week_map = { + '-': '-', '*': '*', '7': '6', '0': '6', @@ -44,6 +45,10 @@ class Scheduler: self._handle_event, 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 def parse_trigger(cls, trigger, trigger_args): if trigger == 'interval': @@ -53,7 +58,7 @@ class Scheduler: elif trigger == 'cron': args = json.loads(trigger_args) if not isinstance(trigger_args, dict) else trigger_args 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, start_date=args['start'], end_date=args['stop']) else: diff --git a/spug_api/apps/schedule/views.py b/spug_api/apps/schedule/views.py index 022dbfa..e46c0d1 100644 --- a/spug_api/apps/schedule/views.py +++ b/spug_api/apps/schedule/views.py @@ -150,7 +150,7 @@ def next_run_time(request): if error is None: try: 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, start_date=form.start, end_date=form.stop) except (ValueError, KeyError):