我们可以限制APScheduler只运行100次吗?

时间:2016-11-09 12:20:57

标签: python apscheduler

我使用APScheduler每5分钟运行一次python方法。它工作得很好。我需要将预定的作业迭代限制为100.在100次迭代之后,它应该关闭该过程。我检查了参考文档,但我找不到任何提供此功能的选项。我们可以选择控制作业实例的数量,但不能控制最大迭代次数。有没有人有这个想法?

from apscheduler.schedulers.blocking import BlockingScheduler

def job():
    print "Decorated job"

scheduler = BlockingScheduler()
scheduler.add_job(job, 'interval', minutes=5)
scheduler.start()

OR 如果我得到预定的作业迭代计数,那么我也可以从代码本身中删除正在运行的作业,如下所示。

scheduler = BlockingScheduler()
scheduler.add_job(job, 'interval', minutes=5, id='my_job_id')

#iterationCount ??

if (iterationCount = 100 ):
    scheduler.remove_job('my_job_id')
    exit(0)
scheduler.start()

1 个答案:

答案 0 :(得分:4)

According to the documentation interval触发器允许设置作业的时间范围:

  

您可以使用start_dateend_date来限制总时间   时间表运行。

sched.add_job(job_function, 'interval', hours=2, start_date='2010-10-10 09:30:00', end_date='2014-06-15 11:00:00')

这不完全是您想要的,但至少可以设置您可以自己轻松计算的结束日期。