2017-05-25 100 views
0

的Python 3.6.0 APScheduler 3.3.1APScheduler運行作業達一特定量

我有我剛纔修改爲實現APScheduler的程序。

該程序完全按照預期工作。

這裏是代碼片段,我在APScheduler補充說:

def main(): 
    sched = BackgroundScheduler() 
    sched.start() 
    sched.add_job(errordetect) 
    sched.add_job(errordetect, 'interval', minutes=5) 
    input("Press enter to exit.") 

作業運行「現在」,然後每隔5分鐘。我的問題是這樣的: 我必須通過按'Enter'手動停止作業。

有沒有辦法說兩種: 1)停止後(比如一個小時)或 2)時間量X運行X迭代後停止(來說twelve迭代)

什麼,我想是每5分鐘運行一次工作一小時,所以我 希望它在12次迭代後停止(或者一小時 - 實際上是相同的事情)。我在文檔中找不到那樣的東西,但我希望我要麼丟失文檔中的某些內容,要麼有另一種方法來完成我所追求的內容。

謝謝。

回答

0

我解決了它這樣的:

x = 0 
starttime = time.time() 
while x < 5: 
    i = 0 
    for a_connection in ssh_conns: 
     errordetect(a_connection, ip_addrs[i]) 
     i += 1 
    x += 1 
    if x == 5: 
     break 
    time.sleep(15.0 - ((time.time() - starttime) % 15.0))