From 2b03cae0171068fc2cac4514ce248e234a056d35 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Tue, 26 Apr 2022 10:55:11 +0200 Subject: [PATCH] Bugfix scheduler end task --- cps/schedule.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cps/schedule.py b/cps/schedule.py index 8b70da6a..9bc248f1 100644 --- a/cps/schedule.py +++ b/cps/schedule.py @@ -63,7 +63,9 @@ def register_scheduled_tasks(reconnect=True): # Register scheduled tasks scheduler.schedule_tasks(tasks=get_scheduled_tasks(), trigger='cron', hour=start) - scheduler.schedule(func=end_scheduled_tasks, trigger='cron', name="end scheduled task", hour=start) # toDo + end_time = calclulate_end_time(start, duration) + scheduler.schedule(func=end_scheduled_tasks, trigger='cron', name="end scheduled task", hour=end_time.hour, + minute=end_time.minute) # Kick-off tasks, if they should currently be running if should_task_be_running(start, duration): @@ -88,4 +90,8 @@ def should_task_be_running(start, duration): start_time = datetime.datetime.now().replace(hour=start, minute=0, second=0, microsecond=0) end_time = start_time + datetime.timedelta(hours=duration // 60, minutes=duration % 60) return start_time < now < end_time - # return (start < end and start <= now < end) or (end < start and (now < end or start <= now )) + +def calclulate_end_time(start, duration): + start_time = datetime.datetime.now().replace(hour=start, minute=0) + return start_time + datetime.timedelta(hours=duration // 60, minutes=duration % 60) +