Планировщик задач выполнил задачу дважды

10

Обновление: теперь это происходит два дня подряд.

Обновление: XML запланированных задач и изображений теперь включены.

На двух серверах, расположенных в Лондоне, оба на Windows 2012, имеют запланированное задание для запуска с 15:00 с понедельника по пятницу. Это было установлено за последние 5 месяцев без проблем.

Однако в понедельник, 28 августа, они оба выполнили запланированное задание в 15:00, а затем снова в 16:00. Когда об этом впервые сообщили, я подумал, что это слишком большое совпадение, чтобы быть днем, когда часы вернулись на час назад. Однако мне не удается объяснить, почему это произошло и связано ли это вообще с изменением часов.

Соответствующие журналы с одного сервера (журналы для другого также следуют этой схеме):

Событие 129 15:00:20 Запуск задачи планировщика заданий "\ 3pm", экземпляр "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" с идентификатором процесса 2388.

Событие 100 15:00:20 Планировщик задач запустил «{75a3590f-dec1-4dee-bd27-73d63a50a9d7}» экземпляр задачи «\ 3pm» для пользователя «x \ y».

Событие 200 15:00:20 Планировщик задач запустил действие "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" в экземпляре "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" задачи "\ 3 вечера".

Событие 201 15:00:23 Планировщик задач успешно выполнил задачу "\ 3pm", экземпляр "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}", действие "C: \ Program Files (x86) \ PHP \ v5.4 \ php .exe "с кодом возврата 0.

Событие 129 16:00:20 Запуск задачи планировщика заданий "\ 3pm", экземпляр "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" с идентификатором процесса 1224.

Событие 100 16:00:20 Планировщик задач запустил «{3dd46ca9-c525-4796-86b5-5e513fd45f26}» экземпляр задачи «\ 3pm» для пользователя «x \ y».

Событие 200 16:00:20 Планировщик задач запустил действие "C: \ Program Files (x86) \ PHP \ v5.4 \ php.exe" в экземпляре "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" задачи "\ 3 вечера".

Событие 201 16:00:23 Планировщик задач успешно выполнил задачу "\ 3pm", экземпляр "{3dd46ca9-c525-4796-86b5-5e513fd45f26}", действие "C: \ Program Files (x86) \ PHP \ v5.4 \ php .exe "с кодом возврата 0.

Я видел этот вопрос Запланированное задание, запускаемое время от времени дважды, что указывает на ошибку по адресу http://support.microsoft.com/kb/2461249, которая является причиной. Тем не менее, это не включает Server 2012 в список проблемных операционных систем.

Я пытаюсь объяснить это, может кто-нибудь еще?

Экспорт XML для запланированной задачи:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2013-04-16T14:04:17.4897806</Date>
    <Author>x\y</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2013-04-17T15:00:20</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
          <Tuesday />
          <Wednesday />
          <Thursday />
          <Friday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>x\y</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>"C:\Program Files (x86)\PHP\v5.4\php.exe"</Command>
      <Arguments>-f "c:\a.php"</Arguments>
    </Exec>
  </Actions>
</Task>

Настройка триггера для запланированной задачи История для запланированного задания

29 октября, 17:00 - Обновление. Оба сервера снова запустили запланированное задание в 15:00 и 16:00. Теперь я обновил php-файл, который запускается планировщиком, чтобы фактически ничего не делать, пока я пытаюсь решить эту проблему. Я планирую перезапустить один сервер, чтобы посмотреть, изменится ли это завтра.

30 октября, 08:25 - Обновление. При экспорте XML-кода задачи я вспомнил, что не учел тот факт, что запланированное задание на втором сервере было создано путем импорта XML-задания, созданного на первом сервере. Единственная разница между этими двумя задачами - это путь к файлу php, который они выполняют, и учетная запись пользователя, от имени которого они работают.

30 октября, 16:30 - Обновление - перезапущенный сервер больше не показывает это поведение, запланированное задание запускалось на нем один раз. Я подожду несколько дней, прежде чем перезагружать второй сервер, на случай, если у кого-нибудь возникнут идеи по диагностике, почему / как это произошло

06 ноября 18:00 - Обновление - Мы применили все обновления ко второму серверу и перезапустили. Мы предполагали, что это решит проблему, однако 3 часа дня снова запускались дважды - один раз в 15:00 и снова в 16:00. Я посмотрел на другие запланированные работы, и они побежали только один раз.

Росс Баггинс
источник
Это маловероятно из-за изменения времени, если оно наступило на следующий день, а время в журналах отражает точное время (то есть, если бы это была временная проблема, вы бы увидели, что она запускается дважды, но оба в 15:00, а не по одному). Честно говоря, если бы это случилось только один раз в августе, я бы сказал "ошибка / аномалия / призраки" и продолжил. Но, может быть, кто-то еще может пролить свет на вас здесь ...
TheCleaner
29 октября, 17:00 - Обновление. Оба сервера снова запустили запланированное задание в 15:00 и 16:00. Теперь я обновил php-файл, который запускается планировщиком, чтобы фактически ничего не делать, пока я пытаюсь решить эту проблему. Я планирую перезапустить один сервер, чтобы посмотреть, изменится ли это завтра.
Росс Баггинс
1
Не могли бы вы оказать нам услугу и опубликовать экспорт XML запланированной задачи, чтобы мы могли увидеть, каковы ее параметры на самом деле?
Райан Райс
просто чтобы быть уверенным: вы проверили опцию триггера «Синхронизация по часовым поясам»? После этого планировщик задач использует UTC.
Манфред Шмидт
Нет, это не отмечено. Однако с этой галочкой я не думаю, что мне нужно поведение. Я хочу, чтобы задание выполнялось в 3 часа дня по местному времени, с этим флажком, я полагаю, оно будет работать час назад во время BST?
Росс Баггинс

Ответы:

4

Мы только что заметили ту же проблему на наших производственных серверах (также Windows Server 2012), которая произошла на этой неделе. Это также началось после того, как наши часы вернулись на один час (это было 3 ноября 2013 года, здесь, в Торонто).

Обновление от 12 ноября 2013 г .:

  • Перезагрузка не сработала (задачи продолжали выполняться дважды)
  • Экспорт и повторный импорт задач не работал (задачи продолжали выполняться дважды)
  • Повторное создание задачи в графическом интерфейсе вручную устраняет проблему.

Кроме того, после дальнейших обсуждений с Microsoft (нашим системным администратором) Microsoft сказала: «... проблема была обнаружена в Windows Server 2012 и была исправлена ​​только в следующем выпуске Windows, который является Windows 8.1 / Windows Server 2012 R2» ,

Уоррен Стивенс
источник
Они тоже были импортированы файлами XML? Смотрите мой комментарий к ответу Стейна
Росс Баггинс
У нас около 10 заданий. Те, которые были введены вручную (я уверен, что это происхождение, потому что я недавно создал задачи), не имеют проблемы с выполнением дважды. Некоторые другие задачи были импортированы из XML и имеют проблему. Мы собираемся попробовать перезагрузить компьютер завтра, и продолжаем работу с Microsoft
Уоррен Стивенс,
Еще одно примечание: у нас не проверяется «Синхронизация по часовым поясам» ни для одной из задач (в случае, если это имеет значение)
Уоррен Стивенс,
От нашего системного администратора: «... У них был сеанс с Microsoft, они уже видели это раньше, но не могут точно сказать, чем это вызвано. Сейчас они просят, чтобы мы попытались перезагрузить сервер, а также попытаться воссоздать задачи. Исправления нет. Устанавливается, чтобы решить эту проблему, как они сказали, что другие затронутые клиенты были в состоянии решить либо перезагрузку, либо воссоздание задач ... "
Уоррен Стивенс
1
У нас работает Windows 2016, и у нас возникла та же проблема (работа, импортированная из Windows 2012)
Грег
1

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

Дэвид Броддус
источник
0

Мы могли бы воспроизвести ошибку, когда задание было запланировано на UTC + 0 (сервер Windows 2012 R2).
Например, у нас была работа в неправильные даты, которая была запланирована на 2 часа ночи.
Поскольку наш часовой пояс UTC + 2, задание выполнялось с UTC + 0.
Кажется, что у Windows есть некоторые проблемы с округлением. Возможно, он использует UTC для внутреннего использования, и если задание выполняется точно в UTC + 0, некоторые ошибки округления или условия гонки приводят к тому, что задание выполняется в неправильные даты.
Мы также видели рабочие места, которые запускались как запланировано, но после перезагрузки, сообщили:

Оператор или администратор отклонил запрос (0x800710E0)

После изменения запланированного времени, например, на 2:02, ошибки исчезли.

T_H
источник