Skip to content

Instantly share code, notes, and snippets.

@alirezapla
Created October 18, 2022 17:57
Show Gist options
  • Save alirezapla/8dc3006bcc3a596ac3358773864e9d70 to your computer and use it in GitHub Desktop.
Save alirezapla/8dc3006bcc3a596ac3358773864e9d70 to your computer and use it in GitHub Desktop.
import schedule
import time
"""
period type
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
@property
def get_period(self):
if ":" not in self.period:
return self.scheduler(int(self.period))
return self.scheduler()
@property
def day(self):
if ":" not in self.period:
return self.get_period.days
return self.get_period.day.at(self.period)
@property
def hour(self):
if ":" not in self.period:
return self.get_period.hours
return self.get_period.hour.at(self.period)
@property
def minute(self):
if ":" not in self.period:
return self.get_period.minutes
return self.get_period.minute.at(self.period)
@property
def second(self):
if ":" not in self.period:
return self.get_period.seconds
return self.get_period.second.at(self.period)
def do(self, task):
if self.interval=='DAYS':
return self.day.do(task)
if self.interval=='HOURS':
return self.hour.do(task)
if self.interval=='MINUTES':
return self.minute.do(task)
if self.interval=='SECONDS':
return self.second.do(task)
s = MySchedule("SECONDS", "4")
def job():
print("I'm working...")
s.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