2015-04-03 7 views
4

Я пытаюсь запланировать программные задания с помощью Advace Python Scheduler, моя проблема в том, что в документации упоминается только, как планировать с помощью типа триггера «интервал», что такое «cron» и «date». Есть ли полная документация о вариантах планирования APScheduler?Параметры APScheduler

Например:

#!/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) 

Как я могу запланировать на основе 'дата' или 'хрон'

Я использую последние APScheduler версии 3.0.2

Благодаря

ответ

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

Средства вызвать функцию 'my_job' один раз в день на 22.30.

APScheduler - хороший материал, но недостаток документов, который жаль, вы можете прочитать исходники, чтобы узнать больше.

Существует еще несколько советов для вас:

  1. использование *

    sched.add_job(my_job, trigger='cron', second='*') # trigger every second. 
    
  2. еще некоторые атрибуты

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

А по-моему, хрон может замените рабочие места в большинстве ситуаций.

+0

flycee thanks! да, в конце концов, я начал читать источник и нашел свой путь – tbo

+4

Отсутствие документов? Извините? http://apscheduler.readthedocs.org/ru/latest/modules/triggers/cron.html#module-apscheduler.triggers.cron http://apscheduler.readthedocs.org/ru/latest/modules/triggers/date.html # module-apscheduler.triggers.date и http://apscheduler.readthedocs.org/en/latest/modules/triggers/interval.html#module-apscheduler.triggers.interval –

1

На основе date

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

Например

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

на основе cron

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

Другой пример

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

больше не подходит для последних версий scheduler – tbo

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