тайм-аут планировщика apscheduler

у меня проблема с apscheduler python.

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

например при беге

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

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

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

ваше здоровье


person gCoh    schedule 26.02.2015    source источник
comment
Я хочу убедиться, что мы на одной волне относительно того, что делает эта строка. Он указывает планировщику добавить задание, которое выполняется с интервалом в 60 секунд, начиная с этого момента. Это то, что вы ожидаете?   -  person Alex Grönholm    schedule 27.02.2015
comment
да и то нормально. проблема в том, что задание заканчивается более чем через 1 минуту (оно завершается)   -  person gCoh    schedule 01.03.2015


Ответы (1)


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

  1. Не обращайте внимания на то, что новый экземпляр задачи иногда не запускается.
  2. Увеличьте параметр max_instances со значения по умолчанию, равного 1, чтобы более одного экземпляра задачи могли выполняться одновременно.
person Alex Grönholm    schedule 02.03.2015