mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 09:36:05 -08:00
54 lines
1.8 KiB
Python
Executable File
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
|