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

Running job scheduler between two different times

我正在尝试 运行 在 x 和 y 之间每隔 5 秒打印一次日期时间。

通过使用下面的代码,我能够正确地完成开始时间并完美地完成作业 运行s。但是,我无法在时间 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:00 开始并在下午 3 点停止的东西

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