2016-11-09 39 views
1

我使用APScheduler在每5分鐘運行一次python方法。它的工作完美。我需要將計劃的作業迭代限制爲100.迭代100次後,它應該關閉該進程。我檢查了參考文件,但我無法找到提供此功能的任何選項。我們可以選擇控制作業實例的數量,但不能控制最大迭代次數。有人有想法嗎?我們可以限制APScheduler只運行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() 

回答

3

According to the documentationinterval觸發允許設置作業的時間範圍:

您可以使用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') 

這不正是你想要的,但它至少可以讓設定結束日期,你可以很容易地計算自己。

+0

感謝@Leon的回覆。是的,它肯定會讓我控制工作迭代。 – Roopendra

相關問題