АГРЕГИРОВАНИЕ ПОВТОРЯЮЩИХСЯ ПЛАНОВ ДЛЯ ОПТИМИЗАЦИИ ПОТРЕБЛЕНИЯ РЕСУРСОВ
AGGREGATING RECURRENT SCHEDULES TO OPTIMISE RESOURCE CONSUMPTION

Область техники, к которой относится изобретение
Мобильные вычислительные устройства, такие как мобильные телефоны и персональные цифровые помощники (PDA), стали все более и более популярными в последние годы. Поскольку устройства продолжают становиться меньше, существуют увеличивающиеся ограничения в ресурсах, таких как память, хранилище, пропускная способность и батарея. Дополнительно теперь большее количество приложений требует увеличенных уровней таких ресурсов. Например, много приложений исполняют повторяющиеся задачи, такие как синхронизация с сервером и обновление контента в реальном времени, которые требуют частого использования радиосвязи для сохранения соединения. После того как радиосвязь включается для отправки данных, радиосвязи требуется несколько секунд, чтобы выключиться (например, приблизительно 3 секунды в сетях 2.5G и приблизительно 20 секунд в сетях 3G). Этот "радиохвост" потребляет энергию и уменьшает срок службы батареи устройства.
Сущность изобретения
Варианты осуществления изобретения корректируют времена активации повторяющихся планов, чтобы воспользоваться возможным преимуществом ресурсов, таких как ограниченные ресурсы. Каждый план задается для активации в повторяющийся момент времени активации, но может быть исполнен раньше, в пределах фактора допуска. После того как принимается уведомление о событии, таком как доступность ресурса, планы идентифицируются на основе принятого уведомления, времени активации и фактора допуска. Например, некоторые планы будут идентифицированы для ранней активации на основе фактора допуска, чтобы использовать доступный ресурс. Идентифицированные планы агрегируются и активируются.
Эта сущность изобретения предоставлена, чтобы представить выбор понятий в упрощенной форме, которые описываются ниже в Подробном описании. Эта сущность изобретения не предназначается, чтобы идентифицировать ключевые признаки или существенные признаки заявленного объекта изобретения, и при этом это не предназначается для использования в качестве средства в определении объема притязаний заявленного объекта изобретения.
Краткое описание чертежей
Фиг.1 является примерной схемой последовательности операций, показывающей работу службы планировщика.
Фиг.2 является примерной блок-схемой, показывающей службу планировщика, исполняющуюся на вычислительном устройстве.
Фиг.3 является примерной блок-схемой, показывающей управление мобильного вычислительного устройства сервером управления устройствами.
Фиг.4 является примерной блок-схемой, показывающей структуру данных, представляющую план.
Соответствующие ссылочные позиции указывают на соответствующие части на всех чертежах.
Подробное описание
Переходя к чертежам, варианты осуществления изобретения предоставляют службу 202 планировщика, исполняемую на вычислительном устройстве 204, которая управляет активацией повторяющихся планов 208. Планы 208 определены как имеющие место пользователем или одним или более приложениями 207, такими как приложение с #1 по приложение #M.
Активация планов 208 включает в себя осуществление или исполнение одного или большего количества действий 406, связанных с планом 208 в заданное время 410 активации в пределах предварительно заданного допуска. Примерная работа службы 202 планировщика показана на Фиг.1. На этапе 102 принимается уведомление о событии. Например, уведомление указывает, что ограниченный ресурс доступен. К множеству планов 208 получают доступ на этапе 104. У каждого из множества планов 208 есть заданное время 410 активации и фактор 412 допуска среди других свойств (например, правил для истечения плана, максимального количества запусков плана, требует ли план 208 использования ограниченного ресурса и т.д.). Фактор 412 допуска обычно указывает на допуск того что план 208 запускается раньше, когда ограниченный ресурс становится доступным. Фактор 412 допуска включает в себя любые средства для указания на доступность плана для исполнения во время, которое отличается от его предварительно заданного времени 410 активации. Например, фактор 412 допуска включает в себя, но не ограничивается, постоянную величину (например, в минутах или секундах), процентное соотношение (например, процентное соотношение продолжительности 408 интервала, такое как 10%) и скользящее среднее минут между доступностью ресурса.
На этапе 106 один или более планов, к которым осуществляют доступ, идентифицируются как функция уведомления о событии, текущего времени, заданного времени 410 активации и фактора 412 допуска каждого из планов, к которым получают доступ. Например, служба 202 планировщика идентифицирует планы 208, для которых событие является заданным условием для активации планов 208, или иначе идентифицирует планы 208, к которым применяется событие. Служба 202 планировщика далее выбирает из идентифицированных планов те планы, которые могут быть активированы раньше, на основе фактора 412 допуска для каждого из планов. Например, служба 202 планировщика вычисляет разницу между текущим временем и заданным временем 410 активации для каждого из планов 208 и сравнивает вычисленную разность с фактором 412 допуска для планов 208. Для всех разностей, которые находятся в пределах допуска, соответствующие планы выбираются для активации.
В примере элемента 106 планы 208, которые требуют ограниченный ресурс, оценивается для соответствия установленным требованиям для запуска в то время, когда уведомление сгенерировано или принято. В некоторых вариантах осуществления соответствие установленным требованиям задается на основе того, попадает ли текущее время между запланированным временем и запланированным временем, меньшим на величину допуска, чтобы запускаться раньше.
Идентифицированные планы активируются на этапе 108. Активация идентифицированных планов включает в себя исполнение одного или более действий 406, связанных с планами. Действия 406 включают в себя, например, действие конфигурации программного обеспечения, такое как установка, конфигурация и/или обновление программного обеспечения. Действие может также включать в себя доступ к исполняемому файлу или библиотеке на вычислительном устройстве 204. Действие может также включать в себя модификацию события синхронизации на вычислительном устройстве 204, которое затем приведет к появлению любого предыдущего действия.
Для мобильного вычислительного устройства 302 одним из наиболее ограниченных ресурсов является батарея и использование сотовой радиосвязи является самым потребляющим питание действием на мобильном вычислительном устройстве 302.
В варианте осуществления, в котором служба 202 планировщика исполняется на или иначе управляет мобильным вычислительным устройством 302, работа службы 202 планировщика увеличивает время работы от батареи посредством объединения, комбинирования или иного агрегирования повторяющихся планов 208 для оптимизации использования доступных ресурсов. Повторяющиеся планы 208 выбираются на основе события. Событие включает в себя любое условие, такое как конкретное время или состояние устройства. Например, если событие указывает, что ресурс доступен (например, сеть или сетевой тип), идентификация плана 208 включает в себя идентификацию планов 208, которые используют ресурс. В другом примере планы 208, которые требуют сотовой радиосвязи, будут идентифицированы для ранней активации на основе фактора 412 допуска, чтобы использовать радиосвязь, в то время как она уже включена для другой задачи. Приложение А является списком дополнительных примерных планов 208, которые находятся в рамках вариантов осуществления изобретения.
Изменяя время 410 активации каждого плана в пределах допуска, служба 202 планировщика работает, чтобы продлить время работы от батареи, используя преимущества ресурсов, в то время как ресурсы доступны, и минимизируя издержки. Например, когда есть событие асинхронной сотовой связи, беспроводного интернета (Wi-Fi), или другого радиопередатчика или приемника (например, сервер отправляет данные устройства, или пользователь инициирует сеанс просмотра веб-страниц), служба 202 планировщика сканирует базу данных 210 и определяет планы, которые могут усилить или улучшить использование радиосвязи. Агрегация планов таким способом минимизирует увеличение радиосвязей. В других вариантах осуществления служба 202 планировщика работает, чтобы минимизировать частоту вывода устройства из состояния ожидания. В другом примере служба 202 планировщика работает, чтобы экономить потребляющие питание ресурсы, такие как следующие компоненты мобильного вычислительного устройства 302: подсветка, процессор, аудиоусилитель, система глобального позиционирования, доступной цифровой памяти, адаптер беспроводной сети малой дальности (например, для сети под брендом BLUETOOTH), вспомогательный процессор, гиромотор вибратора, вызывное устройство, камера, акселерометр и датчик освещенности окружающей среды.
В качестве альтернативы или в дополнение, если служба 202 планировщика решает, что ресурс не будет помещен в состояние высокого потребления во время отдельного исполнения планов, служба 202 планировщика исполнит план отдельно.
В то время как аспекты изобретения описаны в некоторых вариантах осуществления в отношении мобильных вычислительных устройств 302, они применимы к другим устройствам. Дополнительно, в то время как аспекты изобретения описаны в некоторых вариантах осуществления в отношении службы 202 планировщика, они применимы к любому компоненту, исполняющему функциональность, показанную и описанную в данной заявке.
В примере, в котором Планы A, B и C все требуют сетевого соединения, Планы B и C могут быть обработаны в пакетном режиме или агрегированы с Планом А на основе фактора 412 допуска. Если исполнение Плана увеличивает частоту события радиосвязи, то событие будет опубликовано, и затем Планы B и C исполнятся, чтобы использовать в своих интересах это событие радиосвязи. Если окажется, что План A никогда не нуждался в сети, то Планы B и C исполнятся в их исходное запланированное время.
После исполнения планов служба 202 планировщика задает следующее время активации для каждого из планов на этапе 110. Каждый из планов 208 имеет продолжительность 408 интервала, соответствующую времени между повторяющимися активациями каждого из планов 208. Продолжительность 408 интервала устанавливается приложением 207 или пользователем при создании плана. В варианте осуществления следующее время активации для каждого из планов определяется добавлением продолжительности 408 интервала к последнему времени активации. Также фактические периоды времени между исполнениями плана могут быть короче, чем продолжительность 408 интервала, но никогда не будут длиннее, чем продолжительность 408 интервала.
В качестве альтернативы, следующее время активации для каждого из планов устанавливается на основе первоначально заданного времени активации. Также фактические периоды между исполнениями плана могут быть или короче или длиннее, чем продолжительность 408 интервала, но долгосрочная средняя продолжительность интервала сходится к заданному интервалу. В варианте осуществления приложение 207 или пользователь, создающие план 208, определяют, какой способ установки следующего времени активации должен быть использован.
В некоторых вариантах осуществления многие из приложений 207 имеют планы 208, чтобы регулярно отправлять маленькие пакеты данных серверам, чтобы поддерживать соединение открытым. Открытые соединения позволяют серверам “продвигать” данные к мобильным вычислительным устройствам 302 в реальном времени. Служба 202 планировщика позволяет приложениям 207 вызывать интерфейс прикладного программирования (API) и моделировать, что план 208 был запущен. В результате следующее запланированное время вычисляется на основе моделируемого запуска. В таком примере повторяющиеся 208 планы известны как "такты" и гарантируют, что данные отправляются между вычислительным устройством 204 и сервером во время сетевой паузы. Например, если сетевая пауза составляет 15 минут, соединение требует, чтобы некоторые данные были переданы между устройством и сервером каждые 15 минут, иначе соединение закроется. Таким образом, устройство 204 должно отправлять некоторые маленькие пакеты данных серверу каждые 15 минут. Однако, если сервер отправляет данные устройства (например, на отметке в 8 минут), приложение 207 вызывает вызов API на отметке в 8 минут. Следующее время активации для плана вычисляется, чтобы быть на отметке в 23 минуты (например, 8 + 15) вместо отметки в 15 минут.
Приложение B включает в себя список примерных свойств и состояний для службы 202 планировщика.
Со ссылкой на Фиг.2 примерная блок-схема иллюстрирует службу 202 планировщика, исполняемую на вычислительном устройстве 204. Вычислительное устройство 204 включает в себя, например, мобильное устройство, такое как персональный цифровой секретарь (PDA) или мобильный телефон. Процессор 206 выполнен с возможностью исполнять исполняемые компьютером инструкции для приема времени 410 активации, фактора 412 допуска и продолжительности 408 интервала для каждого из планов 208 от пользователя, приложение 207, исполняющееся на вычислительном устройстве 204, приложение 207, исполняющееся удаленно от вычислительного устройства 204, или другого источника. Принятые данные плана хранятся в базе данных 210 или другой области памяти. Приложение C является списком примерных свойств и задач, включенных в задание плана 208.
Продолжительность 408 интервала определяет период времени между исполнениями или активациями планов 208. Последовательные продолжительности интервала могут быть одинаковыми или иметь линейное отношение, экспоненциальное и т.п. Например, некоторые из планов 208 имеют прогрессивно увеличивающиеся интервалы между активациями. В варианте осуществления приложение 207 или пользователь определяет одно или более из: начального значения интервала, типа прогрессии (например, линейная или экспоненциальная), и максимального значения интервала. Когда планы исполняются, интервал начинается с начального значения и затем увеличивается подходящим образом после каждого исполнения. Если максимальное значение интервала задано, продолжительность 408 интервала никогда не увеличивается выше максимального значения интервала, но остается в его самом высоком значении.
Один или более читаемых компьютером носителей имеют исполняемые компьютером компоненты для реализации вариантов осуществления службы 202 планировщика. Например, компоненты сохраняются в области 212 памяти и включают в себя компонент 214 интерфейса, компонент 216 состояния, компонент 218 агрегирования, компонент 220 сохранения, компонент 222 регулирования и компонент 223 правил. Компонент 214 интерфейса принимает уведомление о событии (например, уведомление о доступности использующего питание ресурса на вычислительном устройстве 204). Например, событие может быть событием времени, таким как наличие относительного временного интервала (например, спустя 5 минут после загрузки), или абсолютного времени (например, 12:00:00). Событие может также быть событием состояния, таким как загрузка, обнаружение предварительно определенного типа подключения, такого как соединение Wi-Fi или сотовое соединение, и/или восстановление сетевого соединения после начальной потери сетевой связи или другое состояние вычислительного устройства 204. Дополнительно, уведомления о событии принимаются от программы-посредника 224 уведомлений или любой другой системы обработки событий, уведомления или состояния. В то время как программа-посредник 224 уведомления на Фиг.2 показывается как исполняющаяся на вычислительном устройстве 204, программа-посредник 224 уведомления в качестве альтернативы или дополнения исполняется на другом вычислительном устройстве (например, связываясь с вычислительным устройством 204 посредством сети).
В примере есть несколько путей для компонента 214 интерфейса принимать уведомление о том, что сотовая радиосвязь передает данные на мобильное вычислительное устройство 302. Один путь включает производителя радиосвязи, сообщающего уровню программного обеспечения выше радиосвязи, что радиосвязь передает данные. Другой путь состоит в мониторинге стека Интернет-протокола (IP) в отношении данных, которые отправляются или принимаются. Когда данные передаются или принимаются, время записывается и устанавливается состояние события (например, на "истина"). После заданного периода времени (например, десять секунд), изменяется состояние события (например, на "ложь"), если никакие другие данные не были переданы. Служба 202 планировщика объединяет планы 208 при обнаружении того, что состояние события переходит из "ложь" в "истина" в этом примере, указывающем, что радиосвязь передает данные.
На основе информации о событии, принятой компонентом 214 интерфейса, компонент 216 состояния идентифицирует, по меньшей мере, один из планов 208, сохраненных в базе данных 210. В примере, в котором принятое событие указывает доступность ресурса, компонент 216 состояния идентифицирует планы 208, которые потребляют ресурс во время исполнения. Компонент 218 агрегирования выбирает один или более планов, идентифицированных компонентом 216 состояния для исполнения, на основе времени 410 активации и фактора 412 допуска для этих планов. Например, компонент 218 агрегирования выбирает те планы, для которых разность между следующим временем активации и временем получения уведомления компонентом 214 интерфейса находится пределах фактора 412 допуска для плана. В варианте осуществления время получения уведомления соответствует текущему времени. Компонент 220 сохранения исполняет планы, выбранные компонентом 218 агрегирования. Например, компонент 220 сохранения исполняет действия 406, связанные с каждым из агрегированных планов. Как пример, критерии для выбора планов компонентом 218 агрегирования представляются следующим Булевым выражением: (Current Time >= (NEXT RUN TIME - RUN EARLY TIME)) и (Current Time < END TIME). Все планы, которые соответствуют этим критериям, выбираются компонентом 218 агрегирования.
Компонент 222 регулирования ограничивает количество планов, исполняемых компонентом 220 сохранения, как функцию предварительно заданного предельного значения регулировки. В варианте осуществления предел регулировки задается как функция состояния потребления ресурса на вычислительном устройстве 204. Например, прежде чем компонент 220 сохранения исполнит планы, выбранные компонентом 218 агрегирования, компонент 220 сохранения определяет посредством компонента 222 регулирования, был ли достигнут предельный порог регулировки. Например, большое количество планов или действий, инициированных в непосредственной временной близости, может привести к быстрому исчерпанию ресурсов. Чтобы смягчать это условие, компонент 222 регулирования запускает только определенное количество планов или действий 406 во время любого заданного окна времени. Каждый раз, когда план или действие успешно запущено, счетчик увеличивается. Если значение счетчика достигает предела регулировки, дальнейшие запуски планов или действий задерживаются до сбросов счетчика на ноль или до уменьшения другим образом. Например, счетчик сбрасывается на ноль подпроцессом, исполняющимся на регулярных, предварительно заданных интервалах. В качестве альтернативы или в дополнение, счетчик уменьшается, когда план или действие, использующие ресурс, освобождают ресурс.
Компонент 223 правил применяет специфичные для планов свойства к каждому из планов 208. Например, компонент 223 правил определяет, как вычисляется следующее запланированное время (например, максимальное или среднее), когда начать план 208, когда закончить план 208, сколько раз повторить план 208 и какие объекты могут изменить план 208.
Некоторые из планов 208 определяются, чтобы исполняться, только когда вычислительное устройство 204 загружается. Если эти планы совместно используют общий ресурс (например, радиосвязь), служба 202 планировщика согласовывает активацию этих планов с общим временем активации, чтобы извлечь выгоду из доступности ресурса.
Точно так же служба 202 планировщика согласовывает планы с подобными интервалами или множественными интервалами с базовым нулевым временем (например, искусственным нулевым временем). Как пример, два приложения 207 имеют пятиминутные интервалы такта, каждый с 20%-ным фактором 412 допуска (например, который соответствует одной минуте допуска для раннего запуска). Первое приложение исполняет операции такта во время T0 (например, запуска), T5 (например, спустя пять минут после запуска) и T10 (например, спустя десять минут после запуска). Второе приложение запускается и исполняет операцию такта во время T2 (например, спустя две минуты после того, как первое приложение запустилось) и T7 (например, спустя пять минут после запуска). Поскольку разницей между операциями такта для приложений являются или две, или три минуты, операции такта не объединяются службой 202 планировщика. Вместо этого служба 202 планировщика согласовывает второе приложение с запуском во время T5 так, чтобы операции такта для обоих приложений произошли одновременно.
Со ссылкой на Фиг.3 примерная блок-схема иллюстрирует управление мобильным вычислительным устройством 302 сервером 304 управления устройствами. На Фиг.3 служба 202 планировщика согласно Фиг.2 действует как клиентский модуль 306 планировщика, исполняющийся в клиенте 308 управления устройствами, связывающимся с модулем 310 планировщика сервера, исполняющимся на сервере 304 управления устройствами или другом вычислительном устройстве (например, соединенным посредством сети 312). В таких вариантах осуществления модуль 310 планировщика сервера дает клиентскому модулю 306 планировщика команду активировать запланированное 208 и осуществить исполнение действий 406, связанных с каждым из агрегированных планов, как на Фиг.2.
Со ссылкой на Фиг.4 примерная блок-схема иллюстрирует структуру данных, представляющую планы 208. Планы 208 сохранены в структуре данных, которая может быть закодирована в формате расширяемого языка разметки (XML). Каждый из планов 208 включает в себя список предварительно заданных событий 404 и связанных действий 406, наряду с продолжительностью 408 интервала, временем 410 активации и фактором 412 допуска. Предварительно заданные события 404 включают в себя события времени и события состояния. Связанные действия 406 включают в себя операции, которые должны исполняться, когда происходят предварительно заданные события 404. Действия 406 определяют, например, путь исполняемого файла и параметры командной строки или названное событие синхронизации.
Примерная операционная среда
Вычислительное устройство или компьютер, такие как описаны здесь, имеют один или более процессоров или блоки обработки и системную память. Компьютер обычно имеет, по меньшей мере, некоторую форму читаемого компьютером носителя, содержащего компьютерные носители хранения и коммуникационные носители. Компьютерные носители включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым методом или технологией для хранения информации, такой как читаемые компьютером инструкции, структуры данных, программные модули или другие данные. Коммуникационные носители обычно воплощают читаемые компьютером инструкции, структуры данных, программные модули или другие данные в модулируемом сигнале данных, таком как несущая волна или другой транспортный механизм, и включают в себя любые носители доставки информации.
Хотя варианты осуществления изобретения описаны в соединении с примерной средой вычислительной системы, они являются работоспособными с многочисленными другими средами вычислительной системы или конфигурациями общего назначения или специального назначения.
Варианты осуществления изобретения могут быть описаны в общем контексте исполнимых компьютером инструкций, таких как программные модули, исполняемые одним или более компьютерами или другими устройствами. Аспекты изобретения могут быть реализованы с любым числом и компоновкой таких компонентов или модулей. Например, аспекты изобретения не ограничиваются конкретными исполнимыми компьютером инструкциями или конкретными компонентами или модулями, иллюстрированными на фигурах и описанными здесь. Другие варианты осуществления изобретения могут включать в себя различные исполнимые компьютером инструкции или компоненты, имеющие большую или меньшую функциональность, чем проиллюстрировано и описано здесь.
Варианты осуществления, иллюстрированные и описанные здесь, так же как варианты осуществления, конкретно не описанные здесь, но находящиеся в рамках аспектов изобретения, составляют примерные средства для агрегирования повторяющихся планов 208 для активации, примерные средства для согласования активации повторяющихся планов 208 и примерные средства для идентификации одного или более из множества повторяющихся планов 208 как функцию принятого уведомления, времени уведомления, определенного времени активации и фактора 412 допуска каждого из множества повторяющихся планов.
Порядок исполнения или рабочие характеристики операций в вариантах осуществления изобретения, иллюстрированного и описанного здесь, не важны, если не определено иначе. Таким образом, операции могут быть исполнены в любом порядке, если не определено иначе, и варианты осуществления изобретения могут включать в себя дополнительное или меньшее число операций, чем раскрыто здесь. Например, подразумевается, что исполнение или осуществление определенной работы до, одновременно с или после другой работы находится в рамках аспектов изобретения.
При представлении элементов аспектов изобретения или их вариантов осуществления артикли "a", "an", "the" и "said" предназначаются, чтобы означать, что существует один или более элементов. Термины "содержащий", "включающий в себя" и "имеющий" предназначаются, чтобы быть включающими и означать, что кроме перечисленных элементов могут быть дополнительные элементы.
Описав аспекты изобретения подробно, будет очевидно, что возможны модификации и изменения, не отступая от контекста аспектов изобретения, которые определены в прилагаемой формуле изобретения. Поскольку различные изменения могут быть произведены в вышеупомянутых конструкциях, продуктах и способах, не отступая от контекста аспектов изобретения, подразумевается, что все содержавшееся в вышеупомянутом описании и показанное на сопроводительных чертежах должно интерпретироваться в иллюстративном, а не в ограничивающем смысле.
Приложение A
Перечисленное ниже является примером планов в рамках вариантов осуществления изобретения.
В другом примере приложение имеет план, который исполняется в полдень, и использует радиосвязь в мобильном устройстве. Другое приложение имеет план с заданным временем 410 активации, равным 12:05, наряду с допуском в пять минут. Этот план также требует использования радиосвязи. Служба планировщика затем агрегирует два плана для одновременной активации, таким образом позволяя радиосвязи выполняться только однажды. Результатом являются экономия заряда батареи посредством избегания поглощения питания, требуемого для выключения радиосвязи (например, радиосвязь выключается однажды вместо двух раз). В вариантах этого примера после раннего запуска повторно вычисляется следующее время исполнения плана так, чтобы оно никогда не превысило значение продолжительности интервала, или следующее время исполнения никогда повторно не вычисляется.
В другом примере приложение контролирует онлайновый источник данных, такой как аукцион, который имеет предварительно заданное время окончания. Требуемый уровень обновления плана является переменным, и требование состоит в том, чтобы обновлять его более часто при приближении времени окончания.
В другом примере приложение на устройстве должно отправлять данные серверу каждые x минут, чтобы сохранить соединение между устройством и сервером открытым. Если сервер отправляет данные до следующего запланированного времени, приложению устройства не требуется отправлять данные в это запланированное время, оно должно только повторно вычислить следующее запланированное время, которое будет равняться времени, когда данные принимаются от сервера, + x.
Приложение В
Перечисленное ниже является примерными свойствами и состояниями для планировщика согласно вариантам осуществления изобретения.
Таблица B1Глобальное состояние
Имя
Описание
CURRENT_TIME
Представляет значение системных часов в UTC.
SERVICE_START_TIME
Представляет значение системных часов в UTC, когда служба запускается.
SERVICE_START_TICK
Представляет значение количества Tick, когда служба запускается.
SCHEDULES
Список всех планов в системе.
AGGREGATION_ENABLED
Включение или отключение функции агрегации.
Таблица B2Состояние для каждого плана
Имя
Описание
CURRENT_INTERVAL
Определяет интервал, который используется,чтобы вычислить NEXT_RUN_TIME. Это дает сброс в начальное значение при запуске службы или когда план становится активным.
CURRENT_RUN_COUNT
Счетчик, который отслеживает число раз, когда план запущен.
NEXT_RUN_TIME
Время, в которое следующий запланированный запуск, как предполагается, происходит. -1, если план, никогда не запланирован к запуску.
ENABLED
Если разрешено, план может быть готовым, чтобы быть активным.
Таблица B3Состояние для каждой группы
Имя
Описание
GROUP_LAST_ACTUAL_RUN_TIME
Время, в которое произошел последний запуск плана среди его имевших место планов. -1, если никакой план затем не запускался в этой группе.
GROUP_LAST_SCHEDULED_RUN_TIME
Наиболее недавнее время, в которое план среди его планов был запланирован к запуску. -1, если никакой план не был запланирован ранее.
ACTIVE_SCHEDULE
Активный план в группе.
Таблица B4Глобальные свойства
Имя
Описание
FUZZ_THROTTLING_LIMIT
Для каждого корректируемого события это максимальное число планов, которые могут быть агрегированы вместе. Это используется для регулирования.
STARTUP_THROTTLING_LIMIT
После запуска службы, если есть множественные планы, которые нуждаются в исполнении, тогда эта установка используется для регулирования их исполнения, обрабатывая те планы в пакетном режиме с этим ограничением. Исполнение каждого пакета задерживается коэффициентом STARTUP_THROTTLING_DELAY.
STARTUP_THROTTLING_DELAY
Если есть больше планов, чем STARTUP_THROTTLING_LIMIT, которые должны быть исполнены при запуске, планы обрабатываются в пакетном режиме и каждый пакет задерживается на эту задержку.
Таблица B5Свойства плана
Имя
Значение по умолчанию
Описание
ID
не доступно
Однозначно идентифицирует план в системе.
GROUP_ID
не доступно
Идентифицирует группу, частью которой является план.
START_TIME
0 (нет времени запуска)
Абсолютное время, когда временная шкала планировщика запускается. План гарантирует, что связанные действия не будут инициированы до времени запуска. Время запуска является необязательным.
RELATIVE_START_TIME
0 (нет относительного времени запуска)
Задержка от времени создания плана, в которое план мог стать активным.
END_TIME
-1 (нет времени окончания)
Абсолютное время, когда временная шкала планировщика заканчивается. План гарантирует, что связанные действия не будут инициированы после времени окончания. Время окончания является необязательным.
MAX_RUN_COUNT
-1 (бесконечность)
Максимальное количество моментов времени, в которые план может запуститься.
DELETE_WHEN_EXPIRED
ЛОЖЬ
Задает, должен ли план быть удален после того, как он истекает.
USES_NETWORKING
ЛОЖЬ
Задает, используют ли действия, связанные с планом, организацию сетей. Это используется для того, чтобы согласовать планы, чтобы сэкономить энергию батареи.
RID
НУЛЬ
Идентифицирует id радиосвязи, если действия используют организацию сети.
EARLY_RUN_TIME
0[Агрегация отключена]
Определяет количество времени, на которое план может быть опережен от его запланированного запуска.
CONDITIONS
НУЛЬ
Набор условий, которые должны быть истиной, чтобы план был активным.
ACTIONS
не доступно
Набор действий, которые инициированы для плана, когда план исполняется.
Приложение С
Перечисленное ниже в Таблице С1 является примерными свойствами и определениями, вовлеченными в определение повторяющегося плана.
Таблица С1Примерные свойства для рекуррентного плана
Свойства
Определение
AbsoluteStartTime
Время, в UTC, в которое план запускается.Если отсутствует при создании плана, система присваивает “T=0” время запуска, системное время, которое было в прошлом, согласовать все планы с одним временем запуска. План исполняется в согласованном интервале, чтобы не превысить продолжительность интервала.Если приложение задало абсолютное время запуска, которое происходит в прошлом, и приложение задает, что TntervalDurationDrift = Истина, то поведение является тем же самым, как будто AbsoluteStartTime отсутствовал (согласование к присвоенному системой T=0). Иначе планы согласовываются с предоставленным AbsoluteStartTime.Если абсолютное время запуска больше, чем текущее время, тогда первое запланированное время будет абсолютным временем запуска.Если абсолютное время запуска обеспечено, то оно не будет сброшено после того, как устройство теряет питание. Например, если приложение задает 17:00 UTC как время запуска, с 24-часовой продолжительностью, то план будет всегда пытаться исполниться в 17:00 UTC ежедневно.Все планы сохраняются при перезагрузке, потому что планы сохраняются в постоянном хранилище.
RelativeStartTime
Число минут относительно времени предоставления, в которые план должен начаться. RelativeStartTime имеет большее значение для удаленно управляемых операций, где сервер не знает, какое время в устройстве (у пользователя может быть изменение время из-за часового пояса), и сервер хотел бы сконфигурировать план для запуска через x минут после того, как удаленная команда принимается устройством. После предоставления код планировщика динамически создает или перезаписывает время AbsoluteStart, если оно существует, устанавливая его равным текущему времени плюс это значение.Если и AbsoluteTime и RelativeTime предоставлены, то последнее значение, принятое посредством удаленной команды, является тем, к которому относится план.RelativeStartTime сохранен как минуты, и, если запрошено, результатом будет число минут.
ScheduleRunCount
Является числом раз, сколько действия запланированы к исполнению, не превышая дату окончания и время, если дата окончания задана. Если это поле не присутствует и существует дата окончания, план запускается до даты окончания. Если это поле является нулем, план запускается бесконечно.
ActualRunCount
Является числом раз, сколько планировщик исполнил план.
AbsoluteEnd
Время в UTC, когда план заканчивается. При отсутствии план никогда не заканчивается, если нет RelativeEnd. Если и AbsoluteEnd и RelativeEnd предоставлены, то последнее значение, принятое от удаленного сервера управления, является тем, к которому относится планировщик.
RelativeEnd
Число минут относительно времени предоставления, в которые план должен закончиться. После предоставления код планировщика динамически создает или перезаписывает время AbsoluteEnd, если оно существует, устанавливая его равным текущим временем плюс это значение.Если и AbsoluteEnd и RelativeEnd предоставлены, то последнее принятое значение является тем, к которому относится планировщик.RelativeEnd сохранено как минуты, и, если запрашивается, результатом будет число минут.
IntervalDuration
Базовое количество минут между событиями плана. Если нуль, то план возвратит ошибку, так как план является бесконечным.
LinearBackoff
LinearBackoff является типом плана, которое приложения могут хотеть использовать, когда находится в режиме повторной попытки. LinearBackoff берет IntervalDuration и вычисляет время между планами как: X, 2X, 3X, 4X и заканчивается, когда AbsoluteEnd достигается или ScheduleRunCount достигается, вне зависимости от того, что возникает раньше.
ExponentialBackoff
ExponentialBackoff является типом плана, которое приложения могут хотеть использовать, когда находится в режиме повторной попытки. ExponentialBackoff берет IntervalDuration и вычисляет время между событиями плана как: X, 2X, 4X, 8X, 16X, 32X и заканчивается, когда AbsoluteEnd достигается или ScheduleRunCount достигается, вне зависимости от того, что возникает раньше.
Action
Приложение может задать действие для исполнения в запланированное время. Примерные поддерживаемые действия: запуск EXE или создание именованного события. План может существовать без действия - это может быть план, чтобы ничего не делать, которое является релевантным, например: когда радиосвязь в режиме роуминга, ничего не делать.
RequiresNetwork
Это свойство указывает, нуждается ли приложение в сетевом соединении для их запланированных действий.
DeleteWhenExpired
Приложение может задать, что план удаляется по истечении. Когда установлено на истину, План удаляется, когда ActualRunCount равен ScheduleRunCount. Когда имеет место дата окончания плана, есть возможность, что пользователь или система изменили значение системных часов устройства.
Condition
Повторяющийся план может быть активирован на основе возникновения события или событий. Например: активировать этот план, когда устройство качается и рабочий стол доступен. Когда нуль, ConditionPriority не требуется.Замечание: события в состоянии и программе-посреднике уведомления неограничены, приложения могут создать и поддержать любые типы событий, которыми интересуются другие приложения.
ConditionPriority
Это говорит планировщику порядок проверки условий, которые активируют план. Множественные условия могут быть истинными одновременно, таким образом, этот порядок необходим. ConditionPriority требуется, когда условие было установлено. Назначение одного и того же приоритета множественным планам в одной и той же группе приведет к ошибке.
GroupID
ID, который представляет группу планов, которые имеют условия, которые будут проверены в порядке, заданным ConditionPriority. В пределах GroupID каждое распределение приоритетов должно быть уникальным.
SpecifyRunEarlyTime
Если Ложь, приложение не хочет задавать RunEarlyTime. В этом случае используйте число минут, равное 10% продолжительности интервала, в качестве “ранний допуск запуска”.Если истина, приложение хочет задать RunEarlyTime.
RunEarlyTime
Если SpecifyRunEarlyTime истина, это значение является значением в процентах от IntervalDuration, что приложение готово быть исполненным ранее, чем запланировано, чтобы помочь устройству экономить энергию батареи, осуществляя передачу по доступному соединению.
IntervalDurationDrift
Если ложь, IntervalDuration является средним значением. Это означает, исполняется ли запланированное время раньше из-за агрегации, следующее запланированное время не корректируется, чтобы гарантировать, что IntervalDuration равно X. Например, служба имеет план, чтобы запускаться каждый 1 час, запланированное время является полуднем и 13:00. В 23:55 есть существующее соединение передачи данных, и служба имеет RunEarlyTime, которое позволяет быть запланированным раньше, чтобы осуществлять передачу при событии соединения в 23:55. Следующее запланированное время остается равным 13:00.Если истина, IntervalDuration является максимальным количеством времени между запланированными событиями. Это означает, что следующее запланированное время равно прошлому запланированному времени + IntervalDuration.