Как сделать запуск заданий по расписанию дважды в летнее время
У меня Windows 2008 Server R2. Я использую планировщик заданий, чтобы запускать задание в летнее время, когда часы движутся назад.
Задача запускает скрипт PHP, который обновляет поле базы данных (если поле равно 1, тогда измените его на 0, если поле равно 0, затем измените его на единицу). Это используется в качестве выключателя.
Цель задания - запустить в 1:59:59, чтобы включить переключатель. Часы вернутся к 1:00:00, затем, когда они снова достигнут 1:59:59, они должны выключить выключатель.
В настоящий момент Задание не запускается, когда часы поворачиваются в 1:59:59 в первый раз, но запускается, когда часы достигают 1:59:59 во второй раз. Почему он игнорирует первый час и работает на второй?
Можно ли выполнить задачу дважды при переходе на летнее время?
Я надеюсь, что мой вопрос имеет смысл. Спасибо за прочтение.
1 ответ
Позвольте мне начать с того, что я не знаком с внутренними компонентами Windows Server 2008.
Но когда задача запускается только один раз, когда запланировано ее выполнение в 01:59 в конце летнего времени (DST), я ожидаю, что ваш планировщик (внутренне) преобразует временную метку в UTC, когда вы ее устанавливаете. Выполнение такого преобразования предотвратит повторное выполнение задания (или невозможность его выполнения), когда смещение местного времени по UTC будет изменено.
Может быть интересно посмотреть, не будет ли ежедневное задание после переключения DST больше не запланировано на 01:59, а с этого момента будет выполняться либо в 00:59, либо в 02:59 по местному времени.
В этом случае может быть опция, заставляющая планировщик использовать локальное время, а не UTC...
Этот вопрос и ответы могут быть интересными.