
Estou tendo um problema com o Agendador de Tarefas no Windows Server 2016 que não executa tarefas repetitivas depois de serem desabilitadas e reativadas.
Eu crio uma tarefa com “Triggers->Start” de cinco minutos no futuro e defino a tarefa para ser executada a cada cinco minutos. A opção “Configurações->Executar tarefa o mais rápido possível após a perda do início agendado” está marcada.
Tudo funciona bem – a tarefa é executada no horário de início agendado e depois a cada cinco minutos.
Desative a tarefa e aguarde mais de cinco minutos.
Habilite a tarefa, ela não será executada novamente.
O tempo da próxima execução continua a ser atualizado a cada cinco minutos, mas a tarefa não é executada e o tempo da última execução nunca é atualizado.
Não há entradas no histórico de tarefas depois que a tarefa é reativada e nenhum evento nos logs de eventos do Windows.
Quando o horário de início é atingido no dia seguinte, a tarefa começa a ser executada novamente, mas isso não é desejável, pois pode haver um longo atraso entre o momento em que a tarefa é reativada e o horário de início chega novamente.
Responder1
A tarefa foi definida para ser executada todos os dias e repetida indefinidamente ou diariamente. Mudei para Executar uma vez e repito indefinidamente e ele retoma a execução quando a tarefa é habilitada após ter sido desabilitada.
Acho que isso funciona porque quando configurado desta forma o agendador exibe "Depois de acionado, repita a cada 5 minutos indefinidamente." Assim, uma vez que a tarefa é acionada, ela permanece no estado "acionada" mesmo quando desabilitada, portanto, uma vez habilitada novamente, ela retoma a execução de acordo com o agendamento.
NOTA: ao configurar a tarefa pela primeira vez, o horário de início precisa ser definido no futuro para que a tarefa seja acionada pela primeira vez.
Responder2
Este é o comportamento esperado. Uma tarefa só é iniciada quando uma de suas condições de disparo é atendida. O ato de desabilitar a tarefa tem o mesmo efeito que interrompê-la. Quando isso acontecer, ele não será executado novamente até que uma condição de acionamento seja atendida. Infelizmente o intervalo mínimo ao criar um novo gatilho éDiário, o que é um tanto inflexível no seu cenário.
Duas opções vêm à mente:
- Em vez de desabilitar a tarefa para interromper sua execução, simplesmente interrompa-a. Se você precisar interromper a execução apenas por um curto período de tempo, isso pode ser tudo o que você precisa fazer. No entanto, se você precisar de controle total sobre quando a tarefa é iniciada ou interrompida, não defina nenhuma condição de gatilho e, em seguida, inicie/interrompa a tarefa manualmente.
- Crie vários gatilhos para que um gatilho seja acionado depois que a tarefa for habilitada. Obviamente, isso não é o ideal, especialmente considerando a necessidade de executar a tarefa a cada 5 minutos.
Responder3
Isso destaca a diferença de comportamento entre uma tarefa “Diária” e uma tarefa “Única”. Isso é um pouco contra-intuitivo, mas se você quiser desabilitar uma tarefa e fazer com que ela comece a disparar automaticamente novamente logo após reativá-la, você precisa torná-la uma tarefa “Única” em vez de “Diária”.
Esta é a aparência deles na lista de tarefas (nomeadas deliberadamente para destacar as diferenças de cronograma):
Quando uma tarefa diária é desativada e reativada, ela será retomada no horário de início (ou seja, mais tarde naquele dia ou no dia seguinte):
Se uma tarefa única for desativada e reativada, ela será retomada assim que decorrer mais um intervalo de repetição, relativo ao seu horário de início.