O Agendador de Tarefas executou uma tarefa duas vezes

8

Atualização: isso aconteceu dois dias seguidos.

Atualização: XML de tarefas agendadas e imagens agora incluídas.

Dois servidores localizados em Londres, ambos Windows 2012, têm uma tarefa agendada definida para ser executada às 15:00 de segunda a sexta-feira. Isso foi configurado nos últimos 5 meses sem nenhum problema.

No entanto, na segunda-feira, dia 28 de agosto, ambos realizaram a tarefa agendada às 15h e, novamente, às 16h. Quando foi relatado pela primeira vez, achei que era coincidência demais o dia depois que os relógios voltaram uma hora. No entanto, não consigo explicar por que isso aconteceu e se está relacionado à alteração do relógio.

Os registros relevantes de um servidor (os registros do outro também seguem esse padrão):

Evento 129 15:00:20 Tarefa de inicialização do Agendador de Tarefas "\ 3pm", instância "C: \ Arquivos de Programas (x86) \ PHP \ v5.4 \ php.exe" com a identificação do processo 2388.

Evento 100 15:00:20 O Agendador de Tarefas iniciou a instância "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" da tarefa "\ 3pm" para o usuário "x \ y".

Evento 200 15:00:20 O Agendador de Tarefas iniciou a ação "C: \ Arquivos de Programas (x86) \ PHP \ v5.4 \ php.exe" na instância "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" da tarefa "\ 3pm".

Evento 201 15:00:23 Task Scheduler concluiu com êxito a tarefa "\ 3pm", instância "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}", ação "C: \ Arquivos de Programas (x86) \ PHP \ v5.4 \ php.exe" com código de retorno 0 .

Evento 129 16:00:20 Tarefa de inicialização do Agendador de Tarefas "\ 3pm", instância "C: \ Arquivos de Programas (x86) \ PHP \ v5.4 \ php.exe" com a identificação de processo 1224.

Evento 100 16:00:20 O Agendador de Tarefas iniciou a instância "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" da tarefa "\ 3pm" para o usuário "x \ y".

Evento 200 16:00:20 O Agendador de Tarefas iniciou a ação "C: \ Arquivos de Programas (x86) \ PHP \ v5.4 \ php.exe" na instância "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" da tarefa "\ 3pm".

Evento 201 16:00:23 Task Scheduler concluiu com êxito a tarefa "\ 3pm", instância "{3dd46ca9-c525-4796-86b5-5e513fd45f26}", ação "C: \ Arquivos de Programas (x86) \ PHP \ v5.4 \ php.exe" com código de retorno 0 .

Eu já vi essa pergunta Tarefa agendada sendo executada duas vezes de vez em quando tempo que aponta para um erro no link sendo a causa. No entanto, isso não inclui o Server 2012 em sua lista de sistemas operacionais com problemas.

Estou lutando para explicar isso, alguém pode?

A exportação XML para a tarefa agendada é:

<?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 de outubro 17:00 - Atualização - Os dois servidores executaram novamente a tarefa agendada às 15:00 e 16:00. Eu já atualizei o arquivo php que é executado pelo agendador para não fazer nada enquanto estou tentando resolver isso. Estou pensando em reiniciar um servidor para ver se isso muda alguma coisa amanhã.

30 de outubro de 2008 - Atualização - Ao exportar o XML da tarefa, lembrei-me de que não havia incluído o fato de que a tarefa agendada no segundo servidor foi criada pela importação do XML da tarefa criada no primeiro. A única diferença entre as duas tarefas é o caminho do arquivo php que eles estão executando e a conta de usuário que eles estão executando como.

30 de outubro 16:30 - Atualização - O servidor que foi reiniciado não está mais exibindo esse comportamento, a tarefa agendada foi executada uma vez. Vou esperar alguns dias antes de reiniciar o segundo servidor, caso alguém tenha alguma idéia sobre como diagnosticar porque / como aconteceu

06 de novembro, 18:00 - Atualização - Aplicamos todas as atualizações ao segundo servidor e reiniciamos. Assumimos que isso resolveria o problema, no entanto, as 15:00 correram duas vezes novamente - uma vez às 15:00 e novamente às 16:00. Eu olhei para outros trabalhos agendados e eles funcionaram apenas uma vez.

    
por Ross Buggins 29.10.2013 / 12:24

2 respostas

3

Acabamos de notar o mesmo problema em nossos servidores de produção (também no Windows Server 2012), que ocorreu esta semana. Também começou depois que nossos relógios voltaram uma hora (que era 3 de novembro de 2013, aqui em Toronto).

Atualização em 12 de novembro de 2013:

  • A reinicialização não funcionou (as tarefas continuaram a ser executadas duas vezes)
  • Exportar e reimportar as tarefas não funcionou (as tarefas continuaram a ser executadas duas vezes)
  • A recriação manual da tarefa na GUI corrige o problema

Além disso, depois de mais discussões com a Microsoft (pelo nosso administrador de sistemas), a Microsoft disse: "... o problema foi identificado no Windows Server 2012 e foi corrigido apenas na próxima versão do Windows que é o Windows 8.1 / Windows Server 2012 R2".

    
por 06.11.2013 / 23:01
1

Este problema surgiu esta semana desde a mudança do horário de verão. Eu sei que esta não é uma ótima resposta, mas excluir e recriar o trabalho parece resolver o problema. Eu testei em alguns trabalhos que foram duplicados durante a noite e os trabalhos recriados não se duplicaram.

    
por 08.11.2013 / 14:58