Por que o Agendador de Tarefas do Windows está tentando iniciar várias instâncias?

9

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?

Paul H
fonte
O que está definido para acionar a tarefa?
Bart Silverstrim

Respostas:

3

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.

Collin K
fonte
1
Link quebrado em junho de 2017, procurando KB dá a este novo link: gatilhos duplicados são gerados incorretamente em tarefas agendadas no Windows Vista ou no Windows Server 2008
Adam Dempsey
Estou enfrentando um problema semelhante no Windows Server 2016, onde posso ver que a tarefa foi iniciada e executada corretamente + várias dezenas de tentativas para executar novamente. Infelizmente, todos os links acima estão quebrados. Ele está configurado corretamente e será executado apenas uma vez no intervalo definido, mas também inundará o histórico com avisos. Alguma idéia se o Windows Server 2016 tiver um problema e correção semelhantes? Obrigado.
Alex19
1

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

  1. as tarefas não pareciam falhar (as ações executadas foram executadas várias vezes)

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.

Paul H
fonte
0

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.

Matt
fonte
É necessário 50 representantes para comentar as perguntas e as respostas de outras pessoas ... #
226
Obrigado EEAA. E para acompanhar o meu post, parece que o Pual está pronto para executar um script em lote. Sem saber o que está em seu script e qual código de saída está retornando, é difícil dizer por que está retornando um código diferente de 0, mas meu comentário / resposta ainda deve estar correto, o Agendador de Tarefas está assumindo que ele retornará o código de saída 0 quando não estiver.
Matt
0

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.

Ahmad.Net
fonte
-1

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.

Jack
fonte