Skip to content

Instantly share code, notes, and snippets.

@alirezapla
Last active October 18, 2022 17:50
Show Gist options
  • Save alirezapla/9017354cb7e14e0f7baf3bcb939c67e7 to your computer and use it in GitHub Desktop.
Save alirezapla/9017354cb7e14e0f7baf3bcb939c67e7 to your computer and use it in GitHub Desktop.
import schedule
import time
"""
period interval
input-> 12:22 hours,...
input-> :22 seconds,...
input-> 12 minutes,...
"""
class MySchedule:
def __init__(self, interval, period):
self.scheduler = schedule.every
self.interval = interval
self.period = period
def do(self, task):
return self.get_interval.do(task)
@property
def get_interval(self):
if ":" not in self.period:
_interval_s = {
"DAYS": self.get_period.days,
"HOURS": self.get_period.hours,
"MINUTES": self.get_period.minutes,
"SECONDS": self.get_period.seconds,
}
return _interval_s[self.interval]
_interval = {
"DAYS": self.get_period.day.at(self.period),
"HOURS": self.get_period.hour.at(self.period),
"MINUTES": self.get_period.minute.at(self.period),
"SECONDS": self.get_period.second.at(self.period),
}
return _interval[self.interval]
@property
def get_period(self):
if ":" not in self.period:
return self.scheduler(int(self.period))
return self.scheduler()
def job():
print("I'm working...")
MySchedule("SECONDS", "4").do(job)
while True:
schedule.run_pending()
time.sleep(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment