Перейти к содержимому

Глоссарий

Планировщик

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

Планировщик это часть программы, запускающая работу в выбранный вами час, а не в минуту нажатия кнопки.

На что указывает расписание

Расписание это не самостоятельный будильник. Оно называет сценарий, профили, по которым он пойдёт, частоту повтора и то, сколько идёт разом.

  • Сценарий

    То, что будет исполнено. Без него расписание оказалось бы будильником, звонящим в пустоту.

  • Профили

    По каким профилям оно работает, и каждый сверяется с теми, что у вас есть.

  • Правило повтора

    Ежедневно в час, еженедельно по выбранным дням или через целое число часов.

  • Сколько разом

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

Местное время это и есть суть

Девять утра это девять там, где вы сидите, и после перевода часов это по-прежнему девять. Следующий срок находится перебором календарных дней, потому что дважды в год сутки не равны вчерашним.

Каждое расписание помнит тот сдвиг, в котором срок посчитан, и другой сдвиг при запуске программы заставляет пересчитать время заново.

Ваша машина прямо сейчас

Ваш часовой пояс
измеряем на вашей машине
Часов от UTC
измеряем на вашей машине

Прочитано в вашем браузере и показано здесь. Никуда не отправляется.

Опоздавший срок и пропущенный

Только что прошедший срок это всё ещё тот самый прогон, поэтому короткий запас даёт ему состояться. Позже это уже другое время суток, и запуск тогда был бы ровно тем, чего расписание и избегает.

  1. 1

    Вы открываете крышку

    Ближайший тик приходит в пределах полуминуты после пробуждения программы.

  2. 2

    Просроченное уходит вперёд

    Всё, что опоздало быть собой, переводится в будущее.

  3. 3

    Вам говорят о потерянном

    Одно предупреждение на расписание, с именем сценария и числом несостоявшихся прогонов.

Где на самом деле идут часы

Аккаунт хранит расписания, чтобы они ездили между вашими машинами, и не исполняет ни одного. Прогону нужны печенье, отпечаток и прокси профиля, а всё это лежит на вашем компьютере.

Заведённое в программе работает здесь с минуты сохранения. Приехавшее из аккаунта ложится неработающим на этой машине, пока вы не решите иначе: две открытые копии запустили бы один прогон дважды.

Когда срок не превращается в прогон

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

  • Нет действующей подписки

    Срок проходит мимо, и ничего не копится на потом.

  • Прошлый прогон ещё идёт

    Длинный прогон переживает свой же следующий срок, и сценарий не запускают в его собственные профили.

  • Профили уже открыты

    Живые окна остаются нетронутыми, а не переоткрываются поверх работы в них.

  • Профилей больше, чем даёт тариф

    Список подрезается, и место среза идёт по кругу, чтобы обделённым был каждый раз другой конец.

Часто путают с этим

  • Расписание на сервере

    Серверное расписание идёт без вас. Это идёт, пока открыта программа, потому что нужный ему браузер стоит у вас на столе.

  • Очередь

    Очередь берёт работу, как только освободился работник. Расписание существует ради того, чтобы работа случилась в выбранный час и не раньше.

  • Дневной счётчик темпа

    Тот считает открытые за день страницы и красит полосу, а ничего не запрещает: решение остаётся за вами.

Чего это не делает

  • Ничто не идёт, пока программа закрыта или спит. Служб в системе не ставится, поэтому закрытый ноутбук свой срок пропускает.
  • Пропущенные сроки никогда не догоняются. Вместо прогонов вы получаете их число и предупреждение: очередь догоняющих прогонов к завтраку это ровно тот всплеск, ради которого расписание и заводят.
  • Правила повтора закреплены: ежедневно в час, еженедельно по выбранным дням или через целое число часов. Ни выражений в стиле cron, ни разовых дат, ни промежутка короче часа.
  • Расписанию всегда нужен сценарий, а разносит старты оно только числом одновременных. Правила, которое просто открывает профили к часу и оставляет их стоять, здесь нет.

Проверить

Правила, файл, который их держит, и стенд, который их исполняет.

Правила повтора, запас опоздания и перебор до следующего срока
apps/desktop/src/lib/schedules.js
Местное время переживает перевод часов, а пропущенное считается, а не догоняется
apps/desktop/test/schedule-runs.js
Тик, квота тарифа на весь тик и каждая причина пропуска срока
apps/desktop/src/main/main.js
Приехавшее из аккаунта ложится выключенным здесь и включается кнопкой
apps/desktop/test/расписание-включается-здесь.js

Вопросы

Могут ли два моих компьютера запустить одно расписание?
Нет. Дошедшее до второй машины расписание ложится с пометкой «не здесь» и кнопкой включения: один аккаунт, пришедший дважды из двух мест, это ровно та примета, ради которой продукт и существует.
Сдвигает ли ручной запуск ближайший срок?
Нет. Он запускает сценарий сразу и оставляет расписание нетронутым, поэтому нажатие в восемь утра не отменяет девятичасовой прогон.
Что будет при смене часового пояса?
Ближайший срок пересчитывается в том поясе, где вы сейчас. Уже наступивший срок этот пересчёт переживает, поэтому переезд не съедает прогон, который должен случиться сию минуту.
Как часто оно смотрит на часы?
Дважды в минуту, внутри программы. Чаще значило бы тратить батарею там, где минута точности не значит ничего.
Что записывается после прогона?
Признак, а не фраза, и в слова он превращается на языке того, кто смотрит. Пропуск хранится отдельно от итога, потому что несостоявшийся срок это не прогон с плохим исходом.

Поставьте ночной прогон на часы

Соберите сценарий один раз, выберите профили и час. Остальное программа делает, пока открыта.