You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
941 B
Python
29 lines
941 B
Python
1 year ago
|
import threading
|
||
|
import time
|
||
|
|
||
|
import schedule
|
||
|
|
||
|
|
||
|
def run_continuously(interval=1):
|
||
|
"""Continuously run, while executing pending jobs at each
|
||
|
elapsed time interval.
|
||
|
@return cease_continuous_run: threading. Event which can
|
||
|
be set to cease continuous run. Please note that it is
|
||
|
*intended behavior that run_continuously() does not run
|
||
|
missed jobs*. For example, if you've registered a job that
|
||
|
should run every minute and you set a continuous run
|
||
|
interval of one hour then your job won't be run 60 times
|
||
|
at each interval but only once.
|
||
|
"""
|
||
|
cease_continuous_run = threading.Event()
|
||
|
|
||
|
class ScheduleThread(threading.Thread):
|
||
|
@classmethod
|
||
|
def run(cls):
|
||
|
while not cease_continuous_run.is_set():
|
||
|
schedule.run_pending()
|
||
|
time.sleep(interval)
|
||
|
|
||
|
continuous_thread = ScheduleThread()
|
||
|
continuous_thread.start()
|
||
|
return cease_continuous_run
|