Temos um servidor de 2012 que possui cerca de 20 tarefas agendadas usadas para monitoramento. Criamos um servidor de 2016 para substituí-lo e, à medida que passo as tarefas para o novo servidor, encontro um problema. A maioria das nossas tarefas é executada a cada poucos minutos.
No Server 2012, agendamos a tarefa para iniciar às 1200 do dia atual (um horário no passado) e ocorrer novamente a cada X minutos. A tarefa seria iniciada no próximo horário agendado. Perfeito.
No Server 2016, os agendamentos iniciados no passado não são executados. Então tivemos que agendá-lo para começar no futuro. Tudo bem até você reiniciar. Agora, a hora de início está no passado e não será executada. Ele nem registra uma execução com falha. A coluna Próximo tempo de execução mostra que deve ser executada, mas não é executada.
Além de criar dois gatilhos, um que inicia no futuro e outro que inicia na reinicialização (o que não queremos fazer, pois algumas tarefas devem ser executadas apenas em horários especificados), existe uma maneira melhor? Isto parece ser um inseto. A versão de 2012 funcionou muito bem.
ATUALIZAR
Existe uma solução alternativa para isso. Crie uma programação única que seja executada indefinidamente. Isso funciona após a reinicialização, exatamente como você esperaria. Sei que isso não é bom para horários "estranhos", mas funciona bem para coisas que queremos executar a cada 3 minutos ou o que for.
Respostas:
FYI - Confirmei com a Microsoft através de um tíquete de suporte que abri ontem que isso é um bug. O técnico de suporte confirmou que é classificado internamente como um bug e um patch está sendo desenvolvido. Recebi uma data de lançamento do patch para julho / agosto.
Isso afeta o Windows 10 e o Server 2016. Meus sistemas de teste foram corrigidos até a atualização cumulativa de ontem. O problema não ocorreu no Server 2012 R2 e Windows 7.
Edição - possivelmente em agosto, mas definitivamente em setembro de 2017, esse problema foi corrigido nos sistemas em que eu o testei.
fonte
Esse problema parece afetar apenas as tarefas com o
Repeat task every: ...
conjunto de opções.Até agora, tive a impressão de que
trigger at X, then repeat every 10 minutes
é apenas uma maneira desnecessariamente complicada de escrevertrigger at every xx:x0
no Agendador de tarefas.Aparentemente, não é. Aparentemente, significa exatamente o que diz: A tarefa é acionada
X
e então, e somente então é repetida. Sem gatilho inicial, sem repetição. Parece que não há uma maneira simples de agendartrigger at every xx:x0
no Agendador de Tarefas (ou existe? Isso pode ser uma boa pergunta separada sobre falha do servidor.) O fato de a coluna "Próximo tempo de execução" mostrar algo diferente não é muito útil."Resolvemos" esse problema agendando a tarefa para execução às 12:00 todos os dias (em vez de apenas um dia) e, em seguida, repetindo a cada
...
minuto por 1 dia. Isso significa que, se ocorrer uma reinicialização, às 12:00, as tarefas serão retomadas. Não é o ideal, mas é um compromisso aceitável aqui.Eu acho que você pode reduzir o "tempo de inatividade da tarefa" para 1 hora, criando um gatilho para cada hora e repetir a tarefa a cada
...
minuto por 1 hora.Surpreendentemente, parece que sempre foi assim (veja o primeiro comentário a esta resposta ), que nunca percebemos até agora. De acordo com os outros comentários da resposta vinculada, a maneira canônica de resolver esse problema é ativar a
Run task as soon as possible after a scheduled start is missed
opção.Portanto, sim, é um bug, mas é a coluna "Next Run Time" que é de buggy, não a programação real.
fonte
1 . O Windows 2016 Server exige necessariamente estas opções em seu trabalho:
Observei essas opções na captura de tela
2 . Adicione gatilho adicional. Tal como:
etc. no sentido de: mover uma tarefa para iniciar no horário desejado
3 . Em algumas tarefas no Windows 2016 - implementou essa abordagem.
fonte