Spec-Zone.ru › Hammerspoon

hs.timer

Выполнять функции с различными правилами тайминга

ПРИМЕЧАНИЕ: таймеры используют NSTimer внутри, который будет приостановлен, когда компьютеры спят. Особенно повторяющиеся таймеры не будут срабатывать в указанное время, когда между ними есть периоды сна. Обходным решением является предотвращение сна системы, настроенного в Энергосбережение в Системных настройках.

Подмодули

  • hs.timer.delayed

Обзор API

  • Функции - вызовы API, предоставляемые непосредственно расширением
    • absoluteTime
    • days
    • hours
    • localTime
    • minutes
    • seconds
    • secondsSinceEpoch
    • usleep
    • weeks
  • Конструкторы - вызовы API, которые возвращают объект, обычно тот, который предлагает методы API
    • doAfter
    • doAt
    • doEvery
    • doUntil
    • doWhile
    • new
    • waitUntil
    • waitWhile
  • Методы - вызовы API, которые могут быть выполнены только на объекте, возвращенном конструктором
    • fire
    • nextTrigger
    • running
    • setNextTrigger
    • start
    • stop

Документация API

Функции

absoluteTime
Подпись hs.timer.absoluteTime() -> nanoseconds
Тип Функция
Описание

Возвращает абсолютное время в наносекундах с момента последней загрузки системы.

Параметры
  • Нет
Возвращает
  • время с момента последней загрузки системы в наносекундах
Примечания
  • Это значение не включает время, в течение которого система находилась в спящем режиме.
  • Это значение используется для временных меток в событиях, генерируемых системой.
Источник extensions/timer/libtimer.m строка 447
days
Подпись hs.timer.days(n) -> sec
Тип Функция
Описание

Преобразует дни в секунды

Параметры
  • n - Количество дней
Возвращает
  • Количество секунд в n днях
Источник extensions/timer/timer.lua строка 81
hours
Подпись hs.timer.hours(n) -> seconds
Тип Функция
Описание

Преобразует часы в секунды

Параметры
  • n - Количество часов
Возвращает
  • Количество секунд в n часах
Источник extensions/timer/timer.lua строка 70
localTime
Подпись hs.timer.localTime() -> number
Тип Функция
Описание

Возвращает количество секунд с полуночи по местному времени

Параметры
  • Нет
Возвращает
  • количество секунд
Источник extensions/timer/timer.lua строка 215
minutes
Подпись hs.timer.minutes(n) -> seconds
Тип Функция
Описание

Преобразует минуты в секунды

Параметры
  • n - Количество минут
Возвращает
  • Количество секунд в n минутах
Источник extensions/timer/timer.lua строка 59
seconds
Подпись hs.timer.seconds(timeOrDuration) -> seconds
Тип Функция
Описание

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

Параметры
  • timeOrDuration - строка, которая может иметь любой из следующих форматов:
    • "ЧЧ:ММ:СС" или "ЧЧ:ММ" - представляет время суток (24-часовой формат), возвращает количество секунд с полуночи
    • "ДДчЧЧ", "ЧЧчММм", "ММмССс", "ДДд", "ЧЧч", "ММм", "ССс", "NNNNмс" - представляет продолжительность в днях, часах, минутах, секундах и/или миллисекундах
Возвращает
  • Количество секунд
Источник extensions/timer/timer.lua строка 45
secondsSinceEpoch
Подпись hs.timer.secondsSinceEpoch() -> sec
Тип Функция
Описание

Получает (дробное) количество секунд с эпохи Unix (1 января 1970 г.)

Параметры
  • Нет
Возвращает
  • Количество секунд с эпохи
Примечания
  • Это значение имеет гораздо большую точность, чем os.time(), которое ограничено целыми секундами.
Источник extensions/timer/libtimer.m строка 424
usleep
Подпись hs.timer.usleep(microsecs)
Тип Функция
Описание

Замораживает выполнение Lua на указанное время

Параметры
  • microsecs - Число, содержащее время в микросекундах, на которое заблокировать
Возвращает
  • Нет
Примечания
  • Использование этой функции настоятельно не рекомендуется, так как она блокирует все выполнение на главном потоке в Hammerspoon. Это означает, что горячие клавиши или события не будут обрабатываться в течение этого времени, не будут происходить обновления графического интерфейса и не будет выполняться Lua. Это предоставляется только как крайняя мера или для очень коротких пауз. Во всех других случаях вы действительно должны разбивать свой код на несколько функций и вызывать hs.timer.doAfter()
Источник extensions/timer/libtimer.m строка 243
weeks
Подпись hs.timer.weeks(n) -> sec
Тип Функция
Описание

Преобразует недели в секунды

Параметры
  • n - Количество недель
Возвращает
  • Количество секунд в n неделях
Источник extensions/timer/timer.lua строка 92

Конструкторы

doAfter
Подпись hs.timer.doAfter(sec, fn) -> timer
Тип Конструктор
Описание

Вызывает функцию после задержки

Параметры
  • sec - Количество секунд, которое нужно подождать перед вызовом функции
  • fn - Функция для вызова
Возвращает
  • объект hs.timer
Примечания
  • Нет необходимости вызывать :start() на возвращаемом объекте, таймер уже будет запущен.
  • Обработчик может быть отменён, вызвав метод :stop() на возвращаемом объекте до того, как пройдёт sec секунд.
Источник extensions/timer/libtimer.m строка 205
doAt
Signature hs.timer.doAt(time[, repeatInterval], fn[, continueOnError]) -> timer
Type Конструктор
Description

Создаёт и запускает таймер, который выполнит fn в заданное (локальное) time время, а затем (необязательно) повторит его каждые interval.

Parameters
  • time - количество секунд после полуночи (по локальному времени) или строка в формате "ЧЧ:ММ" (24-часовое локальное время), указывающая желаемое время срабатывания
  • repeatInterval - (необязательно) количество секунд между срабатываниями, или строка в формате "ДДд", "ДДдЧЧч", "ЧЧчММм", "ЧЧч" или "ММм" указывающая дни, часы и/или минуты между срабатываниями; если опущено или 0 таймер сработает только один раз
  • fn - функция, которая будет вызываться каждый раз при срабатывании таймера
  • continueOnError - необязательный булевый флаг, по умолчанию false, который указывает, что таймер не должен автоматически останавливаться, если функция обратного вызова приводит к ошибке.
Returns
  • объект таймера
Notes
  • Таймер может сработать до 1 секунды раньше или позже
  • Первое срабатывание будет установлено на самое раннее время, учитывая repeatInterval; если это опущено, и time раньше текущего времени, таймер сработает на следующий день. Если интервал повтора равен ровно 24 часам, вы можете запланировать регулярные задачи, которые будут выполняться в ожидаемое время независимо от того, был ли Hammerspoon перезапущен/перезагружен. Например:
    • Если сейчас 19:00, hs.timer.doAt("20:00",somefn) установит таймер через 1 час
    • Если сейчас 21:00, hs.timer.doAt("20:00",somefn) установит таймер через 23 часа
    • Если сейчас 21:00, hs.timer.doAt("20:00","6h",somefn) установит таймер через 5 часов (в 02:00)
    • Чтобы запускать задачу каждый час в час с 8:00 до 20:00: for h=8,20 do hs.timer.doAt(h..":00","1d",runJob) end
Source extensions/timer/timer.lua строка 229
doEvery
Signature hs.timer.doEvery(interval, fn) -> timer
Type Конструктор
Description

Повторяет fn каждые interval секунд.

Parameters
  • interval - Количество секунд между срабатываниями
  • fn - Функция, которая будет вызываться каждый раз при срабатывании таймера
Returns
  • Объект hs.timer
Notes
  • Эта функция является сокращением для hs.timer.new(interval, fn):start()
Source extensions/timer/timer.lua строка 159
doUntil
Signature hs.timer.doUntil(predicateFn, actionFn[, checkInterval]) -> timer
Type Конструктор
Description

Создаёт и запускает таймер, который выполнит actionFn каждые checkinterval секунды, пока predicateFn не вернёт true. Таймер автоматически останавливается, когда predicateFn возвращает true.

Parameters
  • predicateFn - функция, определяющая, когда следует прекратить вызывать actionFn. Эта функция не принимает аргументов, но должна возвращать true, когда следует прекратить вызывать actionFn.
  • actionFn - функция, выполняющая желаемое действие. Эта функция может принимать один аргумент — сам таймер.
  • checkInterval - необязательный параметр, указывающий, как часто повторять проверку predicateFn. По умолчанию 1 секунда.
Returns
  • объект таймера
Notes
  • Таймер передаётся как аргумент в actionFn для того, чтобы он мог досрочно остановить таймер (т.е. до того, как predicateFn вернёт true), если это необходимо.
  • См. также hs.timer.doWhile, что по сути является противоположностью этой функции
Source extensions/timer/timer.lua строка 131
doWhile
Signature hs.timer.doWhile(predicateFn, actionFn[, checkInterval]) -> timer
Type Конструктор
Description

Создаёт и запускает таймер, который будет выполнять actionFn каждые checkinterval секунды, пока predicateFn возвращает true. Таймер автоматически останавливается, когда predicateFn возвращает false.

Parameters
  • predicateFn - функция, определяющая, когда следует прекратить вызывать actionFn. Эта функция не принимает аргументов, но должна возвращать false, когда следует прекратить вызывать actionFn.
  • actionFn - функция, выполняющая желаемое действие. Эта функция может принимать один аргумент — сам таймер.
  • checkInterval - необязательный параметр, указывающий, как часто повторять проверку predicateFn. По умолчанию 1 секунда.
Returns
  • объект таймера
Notes
  • Таймер передаётся как аргумент в actionFn для того, чтобы он мог досрочно остановить таймер (т.е. до того, как predicateFn вернёт false), если это необходимо.
  • См. также hs.timer.doUntil, что по сути является противоположностью этой функции
Source extensions/timer/timer.lua строка 195
new
Signature hs.timer.new(interval, fn [, continueOnError]) -> timer
Type Конструктор
Description

Создаёт новый hs.timer объект для повторения вызовов с интервалом

Parameters
  • interval - Количество секунд между запусками таймера
  • fn - Функция, которая будет вызываться каждый раз при запуске таймера
  • continueOnError - Необязательный булевый параметр, true, если таймер должен продолжать срабатывать после того, как функция обратного вызова создала ошибку, false, если таймер должен перестать срабатывать после того, как функция обратного вызова создала ошибку. По умолчанию false.
Returns
  • Объект hs.timer
Notes
  • Созданный объект не запускает свой таймер до тех пор, пока не будет вызван его метод :start()
  • Если interval равно 0, таймер не будет повторяться (поскольку в противном случае он бы повторялся с максимальной скоростью вашего компьютера, что, как правило, нежелательно)
  • Для ненулевых интервалов минимально допустимое значение интервала составляет 0,00001 секунды. Значения >0 и <0,00001 будут приведены к 0,00001
Source extensions/timer/libtimer.m строка 128
waitUntil
Signature hs.timer.waitUntil(predicateFn, actionFn[, checkInterval]) -> timer
Type Конструктор
Description

Создаёт и запускает таймер, который выполнит actionFn когда predicateFn возвращает true. Таймер автоматически останавливается, когда вызывается actionFn.

Parameters
  • predicateFn - функция, определяющая, когда actionFn должен быть вызван. Эта функция не принимает аргументов, но должна возвращать true, когда следует вызвать actionFn.
  • actionFn - функция, выполняющая желаемое действие. Эта функция может принимать один аргумент — сам таймер.
  • checkInterval - необязательный параметр, указывающий, как часто повторять проверку predicateFn. По умолчанию 1 секунда.
Returns
  • объект таймера
Notes
  • Таймер останавливается до того, как вызывается actionFn, но таймер передаётся как аргумент в actionFn, чтобы функция actionFn могла перезапустить таймер, чтобы он снова был вызван в следующий раз, когда predicateFn вернёт true.
  • См. также hs.timer.waitWhile, что по сути является противоположностью этой функции
Source extensions/timer/timer.lua строка 103
waitWhile
Signature hs.timer.waitWhile(predicateFn, actionFn[, checkInterval]) -> timer
Type Конструктор
Description

Создаёт и запускает таймер, который выполнит actionFn когда predicateFn вернёт false. Таймер автоматически останавливается, когда вызывается actionFn.

Parameters
  • predicateFn - функция, определяющая, когда actionFn должен быть вызван. Эта функция не принимает аргументов, но должна возвращать false, когда следует вызвать actionFn.
  • actionFn - функция, выполняющая желаемое действие. Эта функция может принимать один аргумент — сам таймер.
  • checkInterval - необязательный параметр, указывающий, как часто повторять проверку predicateFn. По умолчанию 1 секунда.
Returns
  • объект таймера
Notes
  • Таймер останавливается до того, как вызывается actionFn, но таймер передаётся как аргумент в actionFn, чтобы функция actionFn могла перезапустить таймер, чтобы он снова был вызван в следующий раз, когда predicateFn вернёт false.
  • См. также hs.timer.waitUntil, что по сути является противоположностью этой функции
Source extensions/timer/timer.lua строка 176

Методы

fire
Signature hs.timer:fire() -> timer
Type Метод
Description

Немедленно запускает таймер

Parameters
  • None
Returns
  • объект hs.timer
Notes
  • Это нельзя использовать для таймера, который уже перестал работать
Source extensions/timer/libtimer.m строка 336
nextTrigger
Signature hs.timer:nextTrigger() -> number
Type Method
Description

Возвращает количество секунд до следующего срабатывания таймера.

Parameters
  • None
Returns
  • Число, содержащее количество секунд до следующего запуска.
Notes
  • Возвращаемое значение может быть отрицательным целым числом в двух случаях:
  • Цикл обработки Hammerspoon загружен и догоняет пропущенные срабатывания таймера.
  • Объект таймера в данный момент не работает. В этом случае возвращаемое значение этого метода равно количеству секунд с момента последнего срабатывания (вы можете проверить, работает ли таймер или нет, с помощью hs.timer:running()).
Source extensions/timer/libtimer.m строка 283
running
Signature hs.timer:running() -> boolean
Type Method
Description

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

Parameters
  • None
Returns
  • Логическое значение, указывающее, работает ли таймер в данный момент.
Source extensions/timer/libtimer.m строка 264
setNextTrigger
Signature hs.timer:setNextTrigger(seconds) -> timer
Type Method
Description

Устанавливает время следующего срабатывания таймера.

Parameters
  • seconds - Количество секунд, по истечении которых должен сработать таймер.
Returns
  • Объект hs.timer, или nil, если произошла ошибка.
Notes
  • Если таймер еще не запущен, это запустит его.
Source extensions/timer/libtimer.m строка 307
start
Signature hs.timer:start() -> timer
Type Method
Description

Запускает объект hs.timer.

Parameters
  • None
Returns
  • Объект hs.timer.
Notes
  • Таймер не вызовет обратный вызов немедленно, таймер будет ждать, пока он не сработает.
  • Если функция обратного вызова приводит к ошибке, таймер будет остановлен, чтобы предотвратить повторные сообщения об ошибках (см. параметр continueOnError в hs.timer.new(), чтобы переопределить это).
Source extensions/timer/libtimer.m строка 179
stop
Signature hs.timer:stop() -> timer
Type Method
Description

Останавливает объект hs.timer.

Parameters
  • None
Returns
  • Объект hs.timer.
Source extensions/timer/libtimer.m строка 359

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.timer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API