Поделиться через


Условия простоя задачи

Задача может быть обработана несколькими способами, когда компьютер переходит в состояние простоя. Сюда входит определение триггера простоя или настройка условий простоя при запуске задачи.

Обнаружение состояния простоя

В 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 схемы планировщика задач.

Параметры задачи для условий простоя

Параметры задачи можно использовать для определения того, как планировщик задач обрабатывает задачу, когда компьютер переходит в состояние простоя.

На следующих иллюстрациях представлены три возможные временные шкалы, показывающие, как эти различные условия простоя связаны друг с другом. Имейте в виду, что иллюстрации начинаются при активации триггера задачи или при запуске задачи по запросу (без запроса игнорировать существующие ограничения задачи).

Примечание

Параметры Duration и WaitTimeout являются устаревшими. Они по-прежнему присутствуют в пользовательском интерфейсе планировщика задач, и их методы интерфейса могут по-прежнему возвращать допустимые значения, но они больше не используются.

временная шкала условия простоя

В следующем списке описаны условия простоя.

  • Бездействуйте: время, когда компьютер переходит в состояние простоя.
  • Окончание простоя. Время выхода компьютера из состояния простоя. Имейте в виду, что время, в течение которого компьютер находится в состоянии простоя, не зависит от периода простоя, описанного ранее.

Ожидание простоя и продолжительность простоя устарели.

  • Ожидание бездействия. Время ожидания, в течение которого планировщик задач будет ожидать состояния простоя после активации триггера задачи или после запуска задачи по требованию.
  • Продолжительность простоя: время, в течение которого компьютер должен был простаивать перед запуском задачи.

Например, если задача запускается только в том случае, если компьютер простаивает в течение 30 минут, а задача ожидает, пока компьютер не будет простаивать в течение 10 минут, то задача запустится через 5 минут, только если компьютер был бездействующий в течение 25 минут до момента активации триггера. Задача не запускается, если компьютер переходит в состояние простоя через 5 минут после активации триггера.

По умолчанию для свойства task DisallowStartIfOnBatteries задано значение true, что означает, что служба планировщика задач не будет выполнять задачи, которые активируются триггером простоя (или триггером с условиями простоя), когда компьютер работает от батареи. Это поведение можно изменить, присвоив свойству DisallowStartIfOnBatteries значение false.

Если задача активируется триггером бездействия, свойство WaitTimeout интерфейса IIdleSettings (IdleSettings для сценариев) игнорируется.

Приложения могут управлять условиями простоя, задавая свойства в интерфейсах IIdleSettings и IIdleTrigger .

При чтении или записи XML эти условия указываются в элементе Параметры схемы планировщика задач.

Состояние простоя на велосипеде

Если компьютер находится в состоянии бездействия и выходит из него, можно завершить и перезапустить задачу, используя следующие условия простоя. Чтобы завершить и перезапустить задачу, свойствам и элементам необходимо задать значение True:

  • Чтобы завершить задачу по завершении условия простоя, задайте для свойства StopOnIdleEnd или элемента StopOnIdleEnd значение True.
  • Чтобы перезапустить задачу, когда компьютер снова переходит в состояние простоя, задайте для свойства RestartOnIdle или элемента RestartOnIdle значение True.