Condiciones de inactividad de tareas
Una tarea se puede controlar de varias maneras cuando el equipo entra en un estado inactivo. Esto incluye definir un desencadenador inactivo o establecer las condiciones de inactividad para cuando se inicia la tarea.
En Windows 7, el Programador de tareas comprueba que el equipo está en un estado inactivo cada 15 minutos. El Programador de tareas comprueba si hay un estado inactivo con dos criterios: ausencia del usuario y falta de consumo de recursos. El usuario se considera ausente si no hay ninguna entrada de teclado o mouse durante este período de tiempo. El equipo se considera inactivo si todos los procesadores y todos los discos estaban inactivos durante más del 90 % del último intervalo de detección. (Una excepción sería para cualquier aplicación de tipo de presentación que establezca la marca ES_DISPLAY_REQUIRED. Esta marca obliga a la programación de tareas a no considerar que el sistema está inactivo, independientemente de la actividad del usuario o el consumo de recursos).
En Windows 7, el Programador de tareas considera que un procesador está inactivo incluso cuando se ejecutan subprocesos de prioridad baja (normal de prioridad < de subproceso).
En Windows 7, cuando el Programador de tareas detecta que el equipo está inactivo, el servicio espera solo a que la entrada del usuario marque el final del estado de inactividad.
En Windows 8, el Programador de tareas realiza las mismas comprobaciones generales de ausencia de usuario y consumo de recursos. Sin embargo, el Programador de tareas se basa en el subsistema de alimentación del sistema operativo para detectar la presencia del usuario. De forma predeterminada, el usuario se considera ausente después de cuatro minutos sin entrada de teclado o mouse. El tiempo de comprobación del consumo de recursos se reduce a intervalos de 10 minutos cuando el usuario está presente. Cuando el usuario está fuera, el tiempo de comprobación se reduce a 30 segundos intervalos. El Programador de tareas realiza comprobaciones de consumo de recursos adicionales para los siguientes eventos:
- Estado de presencia del usuario cambiado
- Fuente de alimentación ac/DC cambiada
- Nivel de batería cambiado (solo cuando hay baterías)
Cuando se produce cualquiera de los eventos anteriores, el Programador de tareas comprueba la inactividad del equipo desde la última hora de comprobación. En la práctica, esto significa que el Programador de tareas puede declarar el sistema como inactivo inmediatamente después de que se detecte la ausencia del usuario, si se han cumplido las demás condiciones desde la última hora de comprobación.
En Windows 8, los umbrales de CPU e E/S se establecen en un 80 %.
Al detectar el estado de inactividad en Windows 8 Server, el Programador de tareas no tiene en cuenta la presencia o ausencia del usuario. Para marcar el final del estado inactivo, el Programador de tareas revisa el consumo de recursos una vez en 90 minutos.
Se puede iniciar una tarea cuando el equipo entra en un estado inactivo definiendo un desencadenador inactivo.
Un desencadenador inactivo solo desencadenará una acción de tarea si el equipo entra en un estado inactivo después del límite de inicio del desencadenador.
Una aplicación puede definir un desencadenador inactivo mediante la interfaz IIdleTrigger .
Si lee o escribe XML, el desencadenador inactivo se especifica mediante el elemento IdleTrigger del esquema del Programador de tareas.
La configuración de la tarea se puede usar para definir cómo controla el Programador de tareas la tarea cuando el equipo entra en un estado inactivo.
En las ilustraciones siguientes se proporcionan tres escalas de tiempo posibles que muestran cómo se relacionan entre sí estas diferentes condiciones de inactividad. Tenga en cuenta que las ilustraciones se inician cuando se activa el desencadenador de tareas o cuando se inicia la tarea a petición (sin solicitar omitir las restricciones de tarea existentes).
Nota
La configuración de Duration y WaitTimeout está en desuso. Todavía están presentes en la interfaz de usuario del Programador de tareas y sus métodos de interfaz pueden devolver valores válidos, pero ya no se usan.
En la lista siguiente se describen las condiciones de inactividad.
- Inicio de inactividad: la hora en que el equipo entra en el estado de inactividad.
- Fin de inactividad: la hora en que el equipo pasa del estado inactivo. Tenga en cuenta que la cantidad de tiempo que el equipo está en estado de inactividad es independiente del tiempo de inactividad descrito anteriormente.
La espera inactiva y la duración de inactividad han quedado en desuso.
- Espera inactiva: la cantidad de tiempo que el Programador de tareas esperará a que se produzca un estado de inactividad después de activar un desencadenador de tareas o después de iniciar la tarea a petición.
- Duración de inactividad: la cantidad de tiempo que desea que el equipo haya estado inactivo antes de iniciar la tarea.
Por ejemplo, si una tarea se establece para iniciarse solo si el equipo está inactivo durante 30 minutos y la tarea espera a que el equipo esté inactivo durante 10 minutos, la tarea se iniciará en 5 minutos solo si el equipo ha estado inactivo durante 25 minutos antes del momento en que se activó el desencadenador. La tarea no se iniciará si el equipo entra en un estado de inactividad 5 minutos después de activar el desencadenador.
De forma predeterminada, una propiedad DisallowStartIfOnBatteries se establece en true, lo que significa que el servicio Programador de tareas no ejecutará tareas desencadenadas por un desencadenador inactivo (o un desencadenador con condiciones de inactividad) cuando un equipo se está ejecutando con batería. Puede cambiar este comportamiento estableciendo la propiedad DisallowStartIfOnBatteries en false.
Si un desencadenador inactivo desencadena una tarea, se omite la propiedad WaitTimeout de la interfaz IIdleSettings (IdleSettings para scripting).
Las aplicaciones pueden controlar las condiciones de inactividad estableciendo las propiedades en las interfaces IIdleSettings e IIdleTrigger .
Si lee o escribe XML, estas condiciones se especifican en el elemento Settings del esquema del Programador de tareas.
Si el equipo está en bicicleta y fuera del estado de inactividad, puede finalizar y reiniciar la tarea con las siguientes condiciones de inactividad. Para finalizar y reiniciar una tarea, las propiedades y los elementos deben establecerse en True:
- Para finalizar la tarea cuando finalice la condición inactiva, establezca la propiedad StopOnIdleEnd o el elemento StopOnIdleEnd en True.
- Para reiniciar la tarea cuando el equipo vuelva a pasar a la condición de inactividad, establezca la propiedad RestartOnIdle o el elemento RestartOnIdle en True.