我正在尝试使用 APScheduler (v3.0.0) 安排间隔作业。
我试过了:
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
def my_interval_job():
print 'Hello World!'
sched.add_job(my_interval_job, 'interval', seconds=5)
sched.start()
和
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
@sched.scheduled_job('interval', id='my_job_id', seconds=5)
def my_interval_job():
print 'Hello World!'
sched.start()
两者都应该根据文档工作,但工作永远不会解雇......
更新:
事实证明,还有其他与环境相关的东西,阻止了任务运行。今天早上,任务运行良好,没有对昨天的代码进行任何修改。
更新 2:
经过进一步测试,我发现“间隔”作业似乎通常很不稳定......上面的代码现在可以在我的开发环境中工作,但当我部署到暂存环境时(我正在使用 heroku用于分期的应用程序)。我还有其他在登台/生产环境中工作得很好的 apscheduler 'cron' 工作。
当我为“apscheduler.schedulers”记录器打开调试日志记录时,日志表明添加了间隔作业:
将作业“my_cron_job1”添加到作业存储“default” 将
作业“my_cron_job2”添加到作业存储“default” 将
作业“my_interval_job”添加到作业存储“default”
调度程序开始
暂定添加作业 - 当调度程序开始时将正确调度
添加暂定作业 - 将在调度程序启动时正确安排
寻找要运行的作业
下一次唤醒应在 2015-03-24 15:05:00-07:00 (在254.210542 秒内)
当间隔作业设置为 5 秒时,下一次唤醒如何在 254 秒后到期?