Условия простоя задачи
Задача может обрабатываться несколькими способами, когда компьютер входит в состояние простоя. Это включает определение триггера простоя или задание условий простоя при запуске задачи.
Обнаружение состояния простоя
В Windows 7 планировщик задач проверяет, находится ли компьютер в состоянии простоя каждые 15 минут. Планировщик задач проверяет состояние простоя, используя два критерия: отсутствие пользователя и отсутствие потребления ресурсов. Пользователь считается отсутствующим, если в течение этого периода времени нет ввода клавиатуры или мыши. Компьютер считается неактивным, если все процессоры и все диски были бездействуют более 90% последнего интервала обнаружения. (Исключение может быть для любого приложения типа презентации, задающего флаг ES_DISPLAY_REQUIRED. Этот флаг заставляет расписание задач не рассматривать систему как неактивную, независимо от активности пользователя или потребления ресурсов.)
В Windows 7 планировщик задач считает процессор неактивным, даже если потоки с низким приоритетом (приоритет потока < нормальный).
В Windows 7, когда планировщик задач обнаруживает, что компьютер неактивен, служба ожидает только ввода пользователем, чтобы пометить конец состояния простоя.
В Windows 8 планировщик задач выполняет те же общие проверки отсутствия пользователей и потребления ресурсов. Однако планировщик задач использует подсистему питания операционной системы для обнаружения присутствия пользователей. По умолчанию пользователь считается отсутствующим через четыре минуты без ввода клавиатуры или мыши. Время проверки потребления ресурсов сокращается до 10 минут, когда пользователь присутствует. Когда пользователь отсутствует, время проверки сокращается до 30 секунд. Планировщик задач выполняет дополнительные проверки потребления ресурсов для следующих событий:
- Изменено состояние присутствия пользователя
- Изменен источник питания AC/DC
- Уровень заряда батареи изменился (только при использовании батареи)
Когда происходит любое из указанных выше событий, планировщик задач проверяет компьютер на неактивность с момента последней проверки. На практике это означает, что планировщик задач может объявить систему как простой сразу после обнаружения отсутствия пользователя, если другие условия были выполнены с момента последней проверки.
В Windows 8 пороговые значения ЦП и ввода-вывода имеют значение 80%.
При обнаружении состояния простоя в Windows 8 Server планировщик задач не учитывает наличие или отсутствие пользователя. Чтобы пометить конец состояния простоя, планировщик задач обновляет потребление ресурсов один раз в 90 минут.
Определение триггера простоя
Задачу можно запустить, когда компьютер входит в состояние простоя, определив триггер простоя.
Триггер простоя активирует действие задачи, только если компьютер вводит состояние простоя после начальной границы триггера.
Приложение может определить триггер простоя с помощью интерфейса IIdleTrigger.
При чтении или записи XML триггер простоя указывается элементом IdleTrigger схемы планировщика задач.
Параметры задачи для условий простоя
Параметры задачи можно использовать для определения того, как планировщик задач обрабатывает задачу, когда компьютер входит в состояние простоя.
На следующих рисунках приведены три возможных временных шкалы, которые показывают, как эти различные условия простоя связаны друг с другом. Помните, что иллюстрации начинаются при активации триггера задачи или при запуске задачи по запросу (без запроса на игнорировать существующие ограничения задач).
Заметка
Параметры длительности и WaitTimeout устарели. Они по-прежнему присутствуют в пользовательском интерфейсе планировщика задач, и их методы интерфейса по-прежнему могут возвращать допустимые значения, но они больше не используются.
В следующем списке описаны условия простоя.
- Запуск простоя: время, когда компьютер входит в состояние простоя.
- Окончание простоя: время перехода компьютера из состояния простоя. Помните, что время, которое компьютер находится в состоянии простоя, не зависит от времени простоя, описанного ранее.
Время ожидания простоя и длительности простоя устарело.
- Ожидание простоя. Время ожидания, которое планировщик задач ожидает, пока состояние простоя произойдет после активации триггера задачи или после запуска задачи по запросу.
- Длительность простоя: время простоя компьютера перед запуском задачи.
Например, если задача будет запущена только в течение 30 минут, а задача ожидает простоя компьютера в течение 10 минут, то задача будет запущена в течение 5 минут, только если компьютер неактивен в течение 25 минут до момента активации триггера. Задача не запустится, если компьютер вводит состояние простоя через 5 минут после активации триггера.
По умолчанию для свойства disallowStartIfOnBatteriesзадано значение true, что означает, что служба планировщиказадач не будет запускать задачи, которые активируются триггером простоя (или триггером с условиями простоя), когда компьютер работает на заряде батареи. Это поведение можно изменить, установив для свойства DisallowStartIfOnBatteries значение false.
Если задача активируется триггером простоя, то свойство WaitTimeout интерфейса IIdleSettings (IdleSettings для сценариев) игнорируется.
Приложения могут управлять условиями простоя, задав свойства в интерфейсах IIdleSettings и интерфейсов IIdleTrigger.
При чтении или записи XML эти условия указываются в элементе Settings схемы планировщика задач.
Состояние простоя велосипеда
Если компьютер велоспортен и выходит из состояния простоя, можно завершить и перезапустить задачу с помощью следующих условий простоя. Чтобы завершить и перезапустить задачу, свойства и элементы должны иметь значение True:
- Чтобы завершить задачу при завершении условия простоя, задайте для свойства StopOnIdleEnd или элемента stopOnIdleEnd StopOnIdleEnd значение True.
- Чтобы перезапустить задачу, когда компьютер снова переходит в условие простоя, задайте для свойства RestartOnIdle или элемента RestartOnIdle значение True.