我使用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()
答案 0 :(得分:4)
According to the documentation interval
触发器允许设置作业的时间范围:
您可以使用
start_date
和end_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')
这不完全是您想要的,但至少可以设置您可以自己轻松计算的结束日期。