Расписание заданий cron в Google App Engine повторяется в дни с переходом на летнее время

У меня есть задание cron, которое должно повторяться каждые 3 часа и должно выполняться в 9:30 по времени США / Нью-Йорка.

Если я начну задание в 0:30 и буду запускать его каждые 3 часа, будет ли оно выполняться в 9:30 в дни перехода на летнее время?

Документация по этому поводу немного расплывчата: https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules#daylight_savings_time. Он использует время настенных часов для запуска, но использует ли он время настенных часов для каждого смещения?

В качестве альтернативы, могу ли я запустить его, используя 9:30 в качестве времени срабатывания, а затем каждые 3 часа до 6:30 утра следующего дня?


person FrozenKiwi    schedule 08.07.2020    source источник


Ответы (2)


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

Чтобы запустить задание с 9:30 до 6:30 (на следующий день), вам нужно 2 задания Планировщика.

1-й будет запускаться каждые 3 часа с 9:30 до 23:30.

30 9/3 * * *

2-й будет запускаться каждые 3 часа с 0:30 до 6:30.

30 0-6/3 * * *

Я использую эту страницу, когда сомневаюсь в формате cron

person Jan Hernandez    schedule 08.07.2020
comment
Хорошо, это довольно приличный обходной путь и ссылка. Спасибо! - person FrozenKiwi; 08.07.2020

Лучший способ полностью избежать каких-либо проблем с изменением летнего времени - переключиться на часовой пояс, на который они не влияют, как указано в документации:

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

Хорошим будет, например, UTC, а поскольку разница между NY (GMT -4) и UTC (GMT) составляет 4 часа, вам просто нужно добавить 4 к желаемому времени начала. Этим вы гарантируете, что запланированные часы не будут изменены, и все, что вы ожидаете, будет выполнено, как должно.

Что касается времени запуска триггера, не имеет значения, 0:30 это или 9:30, как только вы его создадите, он будет запускаться каждые X часов / минут / секунд, поскольку вы укажете это заранее.

person bhito    schedule 08.07.2020