Files
NetAlertX/server/scheduler.py
2025-11-09 17:03:25 +00:00

54 lines
1.8 KiB
Python
Executable File

"""class to manage schedules"""
import datetime
from logger import mylog
import conf
# -------------------------------------------------------------------------------
class schedule_class:
def __init__(
self,
service,
scheduleObject,
last_next_schedule,
was_last_schedule_used,
last_run=0,
):
self.service = service
self.scheduleObject = scheduleObject
self.last_next_schedule = last_next_schedule
self.last_run = last_run
self.was_last_schedule_used = was_last_schedule_used
def runScheduleCheck(self):
result = False
# Initialize the last run time if never run before
if self.last_run == 0:
self.last_run = (
datetime.datetime.now(conf.tz) - datetime.timedelta(days=365)
).replace(microsecond=0)
# get the current time with the currently specified timezone
nowTime = datetime.datetime.now(conf.tz).replace(microsecond=0)
# Run the schedule if the current time is past the schedule time we saved last time and
# (maybe the following check is unnecessary)
if nowTime > self.last_next_schedule:
mylog("verbose", f"[Scheduler] run for {self.service}: YES")
self.was_last_schedule_used = True
result = True
else:
mylog("verbose", f"[Scheduler] run for {self.service}: NO")
# mylog('debug',f'[Scheduler] - nowTime {nowTime}')
# mylog('debug',f'[Scheduler] - self.last_next_schedule {self.last_next_schedule}')
# mylog('debug',f'[Scheduler] - self.last_run {self.last_run}')
if self.was_last_schedule_used:
self.was_last_schedule_used = False
self.last_next_schedule = self.scheduleObject.next()
return result