Я пытаюсь запланировать интервальное задание с помощью APScheduler (v3.0.0).
Я пробовал:
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()
Любой из них должен работать в соответствии с документами, но задание никогда не запускается. ...
ОБНОВЛЕНИЕ:
Оказалось, что было что-то еще, связанное с окружающей средой, что мешало выполнению задачи. Сегодня утром задача работает нормально без каких-либо модификаций кода со вчерашнего дня.
ОБНОВЛЕНИЕ 2.
После дальнейшего тестирования я обнаружил, что "интервальные" задания в целом кажутся ненадежными... Приведенный выше код теперь работает в моя среда разработки, но не при развертывании в промежуточной среде (я использую приложение heroku для промежуточной подготовки). У меня есть другие задания apscheduler 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 секунд??