Temos várias tarefas agendadas do Windows que são executadas em um servidor Web Server 2008 (não no R2) que está em um cluster.
Recentemente, passamos de um Cluster de servidor da web original para um novo Cluser de servidor da web (Server 2008 - não R2).
O novo servidor da Web (no cluster) executando as Tarefas do Windows é o mesmo que o original que acreditamos.
Mas agora descobrimos que, no novo Windows Server, o Agendador de Tarefas do Windows parece querer iniciar cada tarefa instantaneamente três vezes.
Se definirmos a opção de colocar em fila uma nova tarefa, obteremos:
A instância da fila do Agendador de Tarefas da ID 324 do evento "{9a1a8411-b042-45ff-8e6b-89874df230d7}" da tarefa "\ Client Reporting" e a iniciará assim que a instância "{2bcc3df6-ea3b-4453-90c2-75b8b1946388}" for concluída.
Se definirmos a opção para interromper uma tarefa existente, obteremos:
O ID de Evento 323 Agendador de Tarefas interrompeu a instância "{e685a910-b32b-414e-85fd-96bbe54314a2}" da tarefa "\ Client Reporting" para iniciar a nova instância "{4db66265-1f51-4ede-8535-ac7c3cb5c4c1}".
Configurações marcadas:
Permitir que a tarefa seja executada sob demanda.
Execute a tarefa o mais rápido possível após a falta de um início agendado.
Pare a tarefa se estiver executando por mais de 1 hora.
Se a tarefa em execução não terminar quando solicitado, force-a a parar.
Inicie a tarefa apenas se o computador estiver com energia CA.
Interrompa a tarefa se o computador alternar para energia da bateria.
Opção selecionada: Se a tarefa já estiver em execução - pare a instância existente.
Nota: Movemos as tarefas de um servidor para outro no cluster para ver se o Agendador de Tarefas no servidor específico que escolhemos está causando o problema. Mesmo comportamento.
Poderia ter algo a ver com a construção dos novos servidores?
Temos tarefas muito semelhantes configuradas em outro cluster de servidores que funcionam bem sem toda essa inicialização múltipla. Comparando essas tarefas com as aqui - não parece haver nada obviamente diferente em termos de configurações disponíveis através das opções no Agendador de tarefas.
Disparador: a tarefa está programada para ser disparada diariamente, uma vez por hora - e ser interrompida se exceder esse tempo.
Ação: Executa um arquivo .bat.
O que poderia estar causando isso / onde podemos olhar para ver qual lógica está causando o início das tarefas várias vezes dessa maneira?
Respostas:
Este é o problema descrito em KB2617046 : se você desabilitar e depois habilitar uma tarefa agendada, gatilhos duplicados serão criados. As propriedades da tarefa ainda mostram apenas um acionador, mas você pode ver que a tarefa é acionada várias vezes simultaneamente no histórico da tarefa.
Há um hotfix disponível na Microsoft. O hotfix diz que é para o Vista, mas funciona no Server 2008 SP2. Após aplicar o hotfix, você deve desativar e reativar o gatilho em sua tarefa (fechando a janela de propriedades do gatilho para aplicar as alterações) para se livrar das duplicatas.
fonte
Conseguimos parar o Windows Task Scheduler de iniciar vários processos marcando a opção "Se a tarefa falhar, reinicie todos:" com os padrões de "1 minuto" e "Tentativa de reiniciar até: 3 vezes".
Isso parecia contra-intuitivo, pois
e 2. as tarefas já pareciam decidir iniciar três vezes de qualquer maneira.
Além disso - temos essas mesmas tarefas configuradas nos servidores da Web de teste e não precisamos marcar esta opção.
fonte
Por qualquer motivo, não posso adicionar um comentário à sua resposta, no entanto, é provável que "falhe" porque a tarefa está retornando um código de saída diferente de 0. Você pode corrigir isso agendando um script para ser executado em vez do processo real da tarefa. Você faria com que o script executasse o processo da tarefa real e, após a conclusão, verifique o código de saída do processo em uma lista de códigos de sucesso conhecidos. Se for bem-sucedido, faça com que o script saia com o código 0 e, se não for bem-sucedido, passe o código de saída com falha. Dessa forma, você ainda mantém a capacidade do agendador de tarefas de reexecutar a tarefa, caso ela realmente falhe.
Infelizmente, não é incomum para processos executados com sucesso para retornar códigos de saída diferentes de 0. Você precisaria verificar a documentação (ou perguntar ao desenvolvedor) sobre quais são os vários códigos de saída.
fonte
Eu enfrentei esse problema no WinServer2008 R2 há alguns meses. Tentei muitas soluções, mas nada resolveu o problema.
o seguinte parece resolver o problema: No Aplicativo Agendador de Tarefas: selecione a tarefa: em seguida, no menu à direita, clique em 'Finalizar', ele perguntará 'Você deseja finalizar todas as instâncias desta tarefa?' clique em 'Sim'.
Espero que isso resolva seu problema.
fonte
O mesmo problema estava acontecendo aqui: qualquer tarefa entra na fila; portanto, navegou em todas as tarefas que estavam em execução ou na fila, finalize todas e reinicie o servidor que foi corrigido.
fonte