Сообщить об ошибке.

Атрибуты и методы планировщика sched.scheduler()

Экземпляры планировщика общего назначения sched.scheduler() имеют следующие методы и атрибуты:

Содержание:


scheduler.enterabs(time, priority, action, argument=(), kwargs={}):

Метод scheduler.enterabs() планирует новое событие на определенное время time.

Аргумент time должен быть числовым типом, совместимым с возвращаемым значением функции timefunc, которая передается конструктору планировщика sched.scheduler().

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

Выполнение события означает вызов функции action (action(*argument, **kwargs)).

  • argument - это последовательность, содержащая позиционные аргументы функции action.
  • kwargs - это словарь, содержащий ключевые аргументы для передачи их функции action.

Возвращаемое методом scheduler.enterabs() значение - это событие, которое может быть использовано для его последующей отмены. Подробнее смотрите метод scheduler.cancel().

scheduler.enter(delay, priority, action, argument=(), kwargs={}):

Метод scheduler.enter() планирует новое событие с задержкой delay от текущего времени.

Кроме относительного времени, другие аргументы, эффект и возвращаемое значение такие же, как и для метода scheduler.enterabs().

scheduler.cancel(event):

Метод scheduler.cancel() удаляет запланированное событие из очереди.

Если событие не является событием, находящимся в данный момент в очереди, то этот метод вызовет исключение ValueError.

scheduler.empty():

Метод scheduler.empty() возвращает True, если очередь событий пуста.

scheduler.run(blocking=True):

Метод scheduler.run() запускает все запланированные события (очередь событий).

Метод scheduler.run() будет ждать следующего события, затем выполнит его и так далее, пока не закончиться очередь запланированных событий. Для ожидания следующего события используется функция delayfunc(), которая передается конструктору планировщика sched.scheduler().

Если для аргумента blocking задано значение False, то выполняются запланированные события, истекающие раньше всех (если они есть), а затем возвращается крайний срок следующего запланированного вызова в планировщике (если есть).

Исключение может быть вызвано либо функцией action, переданной в метод планировщика, либо delayfunc, переданной в конструктор планировщика. В любом случае планировщик будет поддерживать согласованное состояние и распространять исключение. Если исключение вызвано функцией action, то событие не будет предпринято в будущих вызовах метода scheduler.run().

Если последовательность событий выполняется дольше, чем время, доступное до следующего события, то планировщик просто отстает. Никакие события не будут отброшены. За отмену событий, которые больше не актуальны, отвечает вызывающий его код.

scheduler.queue:

Атрибут scheduler.queue только для чтения, возвращающий список предстоящих событий в том порядке, в котором они будут выполняться. Каждое событие отображается в виде именованного кортежа со следующими полями: time, priority, action, argument, kwargs.