当我运行它等待一分钟然后它打印'点亮'然后等待两分钟,然后打印出“关灯”#39;之后,apscheduler似乎疯了,很快就在两者之间迅速交替。
我是不是偶然发现了一个错误的错误或者为什么会这样?
OS X (10.11.4)
答案 0 :(得分:2)
您正在使用事件充斥调度程序。您正在使用BackgroundScheduler,这意味着scheduler.start()正在退出,而不是等待事件发生。最简单的修复可能是不使用BackgroundScheduler(使用BlockingScheduler),或在你的循环上放置一个sleep(180)。
答案 1 :(得分:1)
试试这个:
from datetime import datetime, timedelta
from apscheduler.schedulers.background import BackgroundScheduler
import time
scheduler = BackgroundScheduler()
def turn_on():
print('Turn on', datetime.now())
def turn_off():
print('Turn off', datetime.now())
scheduler.start()
while True:
scheduler.add_job(func=turn_on, trigger='date', next_run_time=datetime.now() + timedelta(minutes=1))
scheduler.add_job(func=turn_off, trigger='date', next_run_time=datetime.now() + timedelta(minutes=2))
time.sleep(180)
您应该只启动一次调度程序。