在两个不同时间之间运行作业调度程序

时间:2017-12-30 20:56:42

标签: python-3.x schedule

我试图在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点停止的事情

1 个答案:

答案 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