Я пытаюсь запланировать интервальное задание с помощью APScheduler (v3.0.0).Как планировать интервальное задание с помощью APScheduler?
Я пробовал:
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
def my_interval_job():
print 'Hello World!'
sched.add_job(my_interval_job, 'interval', seconds=5)
sched.start()
и
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
@sched.scheduled_job('interval', id='my_job_id', seconds=5)
def my_interval_job():
print 'Hello World!'
sched.start()
Либо должны работать в соответствии с the docs, но работа никогда не стреляет ...
UPDATE:
Оказывается, было что-то еще, связанное с окружающей средой, препятствовавшее запуску задачи. Сегодня утром эта задача отлично работает без каких-либо изменений кода со вчерашнего дня.
UPDATE 2:
После дальнейшего тестирования я обнаружил, что «интервал» рабочие места, как представляется, как правило, слоеное ... Вышеприведенный код работает в моем Dev среде, но не тогда, когда я развернитесь в промежуточную среду (я использую приложение heroku для постановки). У меня есть другие задания apccheduler cron, которые отлично работают в стадии постановки/производства.
При включении протоколирования DEBUG для «apscheduler.schedulers» регистратор, журнал указывает на то, что интервал задания добавляются:
Добавлена работа «my_cron_job1» для работы магазина «по умолчанию»
Добавлено работы «my_cron_job2» для работы магазина «по умолчанию»
Добавлена работа «my_interval_job» на работу магазина «по умолчанию»
планировщик начал
Добавление задания ориентировочно - это будет правильно по расписанию, когда планировщик начинает
Добавление задания ориентировочно - это будет правильно по расписанию, когда планировщик начинает
Ищет работу для запуска
Следующего пробуждения связанно в 2015-03-24 15: 05: 00-07: 00 (в 254.210542 секундах)
Каким образом следующее пробуждение должно быть выполнено через 254 секунды, когда задание интервалов установлено на 5 секунд?
У меня действительно был 'от apscheduler.schedulers.blocking import BlockingScheduler' в моем коде. Я просто неправильно скопировал строку в вопрос stackoverflow. Я исправил свой оригинальный вопрос и добавил некоторые другие обновления. – Troy