2015-04-03 3 views
4

Je suis en train de planifier par programme des tâches avec Advace Python Scheduler, mon problème est que dans la documentation il est seulement mentionné comment programmer avec le type de trigger 'intervalle', qu'en est-il de cron? Existe-t-il une documentation complète sur les options de planification d'APScheduler?Options APScheduler

Par exemple:

#!/usr/bin/env python 

from time import sleep 
from apscheduler.scheduler import Scheduler 

sched = Scheduler() 
sched.start()   

# define the function that is to be executed 
def my_job(text): 
    print text 

job = sched.add_job(my_job, 'interval', id='my_job', seconds=10, replace_existing=True, args=['job executed!!!!']) 

while True: 
     sleep(1) 

Comment puis-je planifier en fonction de 'date' ou 'Cron'

J'utilise la plus récente version 3.0.2 APScheduler

Merci

Répondre

4
sched.add_job(my_job, trigger='cron', hour='22', minute='30') 

moyens appeler la fonction 'my_job' une fois par jour sur 22:30. APScheduler est une bonne affaire, mais le manque de docs, ce qui est dommage, vous pouvez lire les codes source pour en savoir plus.

Il y a quelques conseils pour vous:

  1. utilisation *

    sched.add_job(my_job, trigger='cron', second='*') # trigger every second. 
    
  2. un peu plus d'attributs

    {'year': '*', 'month': 1, 'day': 1, 'week': '*', 'day_of_week': '*', 'hour': 0, 'minute': 0, 'second': 0} 
    

Et à mon avis, tâche cron peut remplacer les emplois de date dans la plupart des situations.

+0

flycee merci! oui finalement j'ai commencé à lire la source et trouvé mon chemin – tbo

+4

Manque de docs? Excusez-moi? http://apscheduler.readthedocs.org/en/latest/modules/triggers/cron.html#module-apscheduler.triggers.cron http://apscheduler.readthedocs.org/en/latest/modules/triggers/date.html # module-apscheduler.triggers.date et http://apscheduler.readthedocs.org/en/latest/modules/triggers/interval.html#module-apscheduler.triggers.interval –

1

Basée sur

job = sched.add_date_job(my_job, '2013-08-05 23:47:05', ['text']) # or can pass datetime object. 

Par exemple

import datetime 
from datetime import timedelta 
>>>job = sched.add_date_job(my_job, datetime.datetime.now()+timedelta(seconds=10), ['text']) 
'text' # after 10 seconds 

Basé sur cron

>>>job = sched.add_cron_job(my_job, second='*/5',args=['text']) 
'text' every 5 seconds 

Un autre exemple

>>>job = sched.add_cron_job(my_job,day_of_week='mon-fri', hour=17,args=['text']) 
"text" #This job is run every weekday at 5pm 
+0

ce n'est plus valide avec les dernières versions du planificateur – tbo