2015-02-26 6 views
0

У меня проблема относительно apscheduler для pythons.apscheduler scheduler timeout

У меня есть задача, которая включает в себя извлечение данных из db. Время отклика dbs варьируется, из-за различных операций с ним, из разных источников и прогнозирования, когда время ответа dbs будет низким, невозможно.

, например, при запуске

scheduler.add_interval_job(self.readFromDb, start_date = now(), seconds=60) 

Параметр секунд останавливает задачу, если она не договорила, и приступает к выполнению следующей задачи

есть способ изменения параметра секунд динамически? или я должен использовать значение по умолчанию 0?

веселит

+0

Я хочу убедиться, что мы находимся на одной странице относительно того, что делает эта линия. Он сообщает планировщику добавить задание, которое выполняется с интервалом в 60 секунд, начиная с этого момента. Это то, чего вы ожидаете? –

+0

да, и это нормально. проблема заключается в том, когда задание заканчивается более чем на 1 минуту (оно завершается) – gCoh

ответ

1

Параметр «секунды» не никоим образом не ограничивает, сколько времени работа может занять, и это, конечно, не прекращает его преждевременно. Тем не менее, при настройках по умолчанию запрещается генерировать другой экземпляр задания, если предыдущий экземпляр занимает больше времени, чем указанный интервал (здесь 60 секунд). Как я понимаю, у вас есть два варианта здесь:

  1. игнорировать тот факт, что новый экземпляр задачи иногда не запускается
  2. Увеличьте параметр max_instances от дефолта-так более одного экземпляра задача может выполняться одновременно