Condições ociosas da tarefa
Uma tarefa pode ser tratada de várias maneiras quando o computador entra em um estado ocioso. Isso inclui definir um gatilho ocioso ou definir as condições ociosas para quando a tarefa for iniciada.
Detectando o estado ocioso
No Windows 7, o Agendador de Tarefas verifica se o computador está em um estado ocioso a cada 15 minutos. O Agendador de Tarefas verifica se há um estado ocioso usando dois critérios: ausência do usuário e falta de consumo de recursos. O usuário será considerado ausente se não houver entrada de teclado ou mouse durante esse período de tempo. O computador será considerado ocioso se todos os processadores e todos os discos estiverem ociosos por mais de 90% do último intervalo de detecção. (Uma exceção seria para qualquer aplicativo de tipo de apresentação que define o sinalizador ES_DISPLAY_REQUIRED. Esse sinalizador força o Agendamento de Tarefas a não considerar o sistema como ocioso, independentemente da atividade do usuário ou do consumo de recursos.)
No Windows 7, o Agendador de Tarefas considera um processador ocioso mesmo quando threads de baixa prioridade (prioridade < de thread normal) são executados.
No Windows 7, quando o Agendador de Tarefas detecta que o computador está ocioso, o serviço aguarda apenas a entrada do usuário marcar o fim do estado ocioso.
No Windows 8, o Agendador de Tarefas executa as mesmas verificações gerais de ausência de usuário e consumo de recursos. No entanto, o Agendador de Tarefas depende do subsistema de energia do sistema operacional para detectar a presença do usuário. Por padrão, o usuário é considerado ausente após quatro minutos sem entrada de teclado ou mouse. O tempo de verificação de consumo de recursos é reduzido para intervalos de 10 minutos quando o usuário está presente. Quando o usuário está ausente, o tempo de verificação é reduzido para intervalos de 30 segundos. O Agendador de Tarefas faz verificações adicionais de consumo de recursos para os seguintes eventos:
- Estado de presença do usuário alterado
- Fonte de alimentação AC/DC alterada
- Nível da bateria alterado (somente quando em baterias)
Quando qualquer um dos eventos acima ocorre, o Agendador de Tarefas testa o computador quanto à ociosidade desde a hora da última verificação. Na prática, isso significa que o Agendador de Tarefas pode declarar o sistema como ocioso imediatamente após a ausência do usuário ser detectada, se as outras condições tiverem sido atendidas desde a hora da última verificação.
Em Windows 8, os limites de CPU e E/S são definidos como 80%.
Ao detectar o estado ocioso no servidor Windows 8, o Agendador de Tarefas não leva em conta a presença ou a ausência do usuário. Para marcar o fim do estado ocioso, o Agendador de Tarefas revisa o consumo de recursos uma vez em 90 minutos.
Definindo um gatilho ocioso
Uma tarefa pode ser iniciada quando o computador entra em um estado ocioso definindo um gatilho ocioso.
Um gatilho ocioso só disparará uma ação de tarefa se o computador entrar em um estado ocioso após o limite inicial do gatilho.
Um aplicativo pode definir um gatilho ocioso usando a interface IIdleTrigger .
Se estiver lendo ou gravando XML, o gatilho ocioso será especificado pelo elemento IdleTrigger do esquema do Agendador de Tarefas.
Configurações de tarefa para condições ociosas
As configurações de tarefa podem ser usadas para definir como o Agendador de Tarefas manipula a tarefa quando o computador entra em um estado ocioso.
As ilustrações a seguir fornecem três linhas do tempo possíveis que mostram como essas diferentes condições ociosas se relacionam entre si. Lembre-se de que as ilustrações começam quando o gatilho de tarefa é ativado ou quando a tarefa é iniciada sob demanda (sem solicitar para ignorar as restrições de tarefa existentes).
Observação
As configurações Duration e WaitTimeout foram preteridas. Eles ainda estão presentes na interface do usuário do Agendador de Tarefas e seus métodos de interface ainda podem retornar valores válidos, mas não são mais usados.
A lista a seguir descreve as condições ociosas.
- Início ocioso: a hora em que o computador entra no estado ocioso.
- Fim ocioso: a hora em que o computador faz a transição para fora do estado ocioso. Lembre-se de que a quantidade de tempo que o computador está no estado ocioso é independente do tempo de duração ocioso descrito anteriormente.
A espera ociosa e a duração ociosa foram preteridas.
- Espera ociosa: a quantidade de tempo que o Agendador de Tarefas aguardará que um estado ocioso ocorra depois que um gatilho de tarefa for ativado ou depois que a tarefa for iniciada sob demanda.
- Duração ociosa: a quantidade de tempo que você deseja que o computador esteja ocioso antes de iniciar a tarefa.
Por exemplo, se uma tarefa estiver definida para iniciar somente se o computador estiver ocioso por 30 minutos e a tarefa aguardar o computador ficar ocioso por 10 minutos, a tarefa será iniciada em 5 minutos somente se o computador estiver ocioso por 25 minutos antes do momento em que o gatilho foi ativado. A tarefa não será iniciada se o computador entrar em um estado ocioso 5 minutos após o gatilho ser ativado.
Por padrão, uma propriedade disallowStartIfOnBatteries da tarefa é definida como true, o que significa que o serviço agendador de tarefas não executará tarefas disparadas por um gatilho ocioso (ou um gatilho com condições ociosas) quando um computador estiver executando com energia da bateria. Você pode alterar esse comportamento definindo a propriedade DisallowStartIfOnBatteries como false.
Se uma tarefa for disparada por um gatilho ocioso, a propriedade WaitTimeout da interface IIdleSettings (IdleSettings para scripts) será ignorada.
Os aplicativos podem controlar as condições ociosas definindo as propriedades nas interfaces IIdleSettings e IIdleTrigger .
Se estiver lendo ou gravando XML, essas condições serão especificadas no elemento Settings do esquema do Agendador de Tarefas.
Condição ociosa de ciclismo
Se o computador estiver entrando e saindo do estado ocioso, você poderá encerrar e reiniciar a tarefa usando as seguintes condições ociosas. Para encerrar e reiniciar uma tarefa, as propriedades e os elementos devem ser definidos como True:
- Para encerrar a tarefa quando a condição ociosa terminar, defina a propriedade StopOnIdleEnd ou o elemento StopOnIdleEnd como True.
- Para reiniciar a tarefa quando o computador estiver novamente na condição ociosa, defina a propriedade RestartOnIdle ou o elemento RestartOnIdle como True.