我试图在x和y之间每隔5秒运行一次打印日期时间。
通过使用以下代码,我能够正确完成开始时间,并且作业运行完美。但是,我无法在y时间停止工作。
import schedule
import time
from datetime import datetime
schedule.clear()
def job():
print(datetime.now())
schedule.every(5).seconds.do(job)
while 1:
if datetime.now()>=datetime(2017,12,31,1,49) :
schedule.run_pending()
time.sleep(1)
Documentation提供取消多个工作的示例但是,我无法做到这一点
我正在寻找每天早上9点开始,下午3点停止的事情
答案 0 :(得分:1)
有schedule.cancel_job()
,它引用了先前创建的作业。或者有简单的schedule.clear()
删除所有工作。
import schedule
import time
from datetime import datetime, timedelta
schedule.clear()
def job():
print(datetime.now())
j = schedule.every(1).seconds.do(job)
start = datetime.now()
end = start + timedelta(seconds=5)
while True:
schedule.run_pending()
time.sleep(1)
if datetime.now() > end:
print('cancelling job')
schedule.cancel_job(j)
break
print(schedule.jobs) # shows empty list, as they are no open jobs
time.sleep(5) # just to double check that it does no longer trigger