2016-11-09 2 views
1

J'utilise APScheduler pour exécuter une méthode python toutes les 5 minutes. Cela fonctionne parfaitement. Je dois limiter l'itération de travail planifiée à 100. Après l'itération 100, il doit fermer le processus. J'ai vérifié le document de référence mais je suis incapable de trouver une option fournissant cette fonctionnalité. Nous avons l'option pour contrôler le nombre d'instance de travail mais pas l'itération maximum. Est-ce que quelqu'un a une idée à ce sujet?Peut-on limiter APScheduler à 100 exécutions seulement?

from apscheduler.schedulers.blocking import BlockingScheduler 

def job(): 
    print "Decorated job" 

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

OU si je reçois le compte travail itération programmée alors je peux aussi supprimer le travail en cours d'exécution de code lui-même comme ci-dessous.

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() 

Répondre

3

According to the documentation la gâchette interval permet de définir la plage horaire pour le travail:

Vous pouvez utiliser start_date et end_date pour limiter la durée totale de qui l'exécution du planning.

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

Ce n'est pas exactement ce que vous voulez, mais au moins permet de fixer la date de fin que vous pouvez facilement vous calculer.

+0

Merci @Leon pour votre réponse. Oui, certainement, cela me permettra de contrôler l'itération du travail. – Roopendra