2015-05-12 2 views
1

У меня есть простой набор функций foo и bar. Я хочу запустить вторую работу bar только после успешного завершения задачи/функции foo.Python Apscheduler условные задачи

В настоящее время я делаю это с глобальной переменной, например:

from apscheduler.scheduler import Scheduler 

success = 0 

def foo(): 
    global success 
    try: 
     print 'yes' 
    except: 
     success = 0 
     return 
    success = 1 
    return 

def bar(): 
    if success: 
     print 'yes' 
    else: 
     print 'no' 
    return 

scheduler = Scheduler() 
scheduler.add_cron_job(foo, day_of_week='mon-fri', hour=18, minute=30); 
scheduler.add_cron_job(bar, day_of_week='mon-fri', hour=18, minute=45) 
scheduler.start() 

Есть ли лучший способ иметь условные задачи с apscheduler?

ответ

1

Запланируйте новый пробег бара() в 15 минутах от foo(), если он преуспеет.

Как так:

from datetime import datetime, timedelta 

def foo(): 
    print 'yes' 
    scheduler.add_date_job(bar, datetime.now() + timedelta(minutes=15)) 
+0

и обновление до APScheduler 3. Спасибо :) –

Смежные вопросы