Продажи: 1-800-867-1389

Основные понятия планировщика, терминологии и иерархия сущностей

Обновлено: Январь 2015 г.

В следующей таблице описаны основные ресурсы, предоставляемые или используемые API планировщика.

 

Ресурс Описание

Cloud service

В концептуальном плане облачная служба является приложением. Подписка может иметь несколько облачных служб.

Job collection

Коллекция заданий содержит группу заданий, в ней задаются параметры, квоты и регулирования, которые распространяются на все задания из этой коллекции. Коллекция заданий создается владельцем подписки, в ней задания группируются с учетом использования и границ приложения. Ее действие ограничено одним регионом. Она также позволяет принудительно вводить квоты для ограничения использования всех заданий из этой коллекции. В число квот входят MaxJobs и MaxRecurrence.

Job

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

Job history

Журнал заданий содержит подробные сведения по выполнению задания. В нем указано, завершилось задание успешно или с ошибкой, а также все данные ответа.

На высоком уровне планировщик и API управления службами представляют следующие операции с ресурсами.

 

Capability Описание и адрес URI

Cloud service management

Поддержка операций GET, PUT и DELETE для создания и изменения облачных служб

https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}

Job collection management

Поддержка операций GET, PUT и DELETE для создания и изменения коллекций заданий и находящихся в них заданий. Коллекция заданий ― это контейнер для заданий, в котором они сопоставляются с квотами и общими настройками. Примеры квот, описанные далее, являются максимальным числом заданий и наименьшим интервалом повтора задания

PUT и DELETE: https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/jobcollections/{jobCollectionName}

GET: https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/~/jobcollections/{jobCollectionName}

Job management

Поддержка операций GET, PUT, POST, PATCH и DELETE для создания и изменения заданий. Все задания должны принадлежа��ь к коллекции заданий, которая уже существует, поэтому неявное создание невозможно

https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/~/jobcollections/{jobCollectionName}/jobs/{jobId}

Job history management

Поддержка операции GET для получения журнала выполнения заданий за 60 дней с такими данными, как время, прошедшее с момента выполнения задания, и результаты выполнения задания. Добавляет поддержку строкового параметра запроса для фильтрации по состоянию и статусу

https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/~/jobcollections/{jobCollectionName}/jobs/{jobId}/history

Задания относятся к двум типам: задания HTTP (включая задания HTTPS, поддерживающие протокол SSL) и задания очереди хранилища. При наличии конечной точки существующей рабочей нагрузки или службы предпочтительны задания HTTP. Задания очереди хранилища позволяют помещать сообщения в очереди хранилища, поэтому эти задания лучше подходят для рабочих нагрузок, использующих очереди хранилища.

На базовом уровне запланированное задание состоит из нескольких частей.

  1. Действие, выполняемое по наступлении времени запуска задания

  2. (Необязательно) Время выполнения задания

  3. (Необязательно) Когда и как часто выполнять задание повторно

  4. (Необязательно) Действие, которое следует выполнить, если основное действие завершится ошибкой

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

Далее приведен всеобъемлющий пример задания планировщика. Описание приведено в последующих разделах.


{
    "startTime": "2012-08-04T00:00Z",               // optional
    "action": 
    {
        "type": "http",
        "retryPolicy": { "retryType":"none" },
        "request":
        {
            "uri": "http://contoso.com/foo",        // required
            "method": "PUT",                        // required
            "body": "Posting from a timer",         // optional
            "headers":                              // optional

            {
                "Content-Type": "application/json"
            },
        },
       "errorAction": 
       {
           "type": "http",
           "request":
           {
               "uri": "http://contoso.com/notifyError", 
               "method": "POST",                       
           },
       },
    },
    "recurrence":                                   // optional
    {
        "frequency": "week",                        // can be "year" "month" "day" "week" "minute"
        "interval": 1,                              // optional, how often to fire (default to 1)
        "schedule":                                 // optional (advanced scheduling specifics)
        {
            "weekDays": ["monday", "wednesday", "friday"],
            "hours": [10, 22]                      
        },
        "count": 10,                                 // optional (default to recur infinitely)
        "endTime": "2012-11-04",                     // optional (default to recur infinitely)
    },
    "state": "disabled",                           // enabled or disabled
    "status":                                       // controlled by Scheduler service
    {
        "lastExecutionTime": "2007-03-01T13:00:00Z", 
        "nextExecutionTime": "2007-03-01T14:00:00Z ", 
        "executionCount": 3,
         "failureCount": 0,
         "faultedCount": 0
    },
}

Как видно в приведенном выше образце задания планировщика, определение задания состоит из нескольких частей.

  1. Время начала (startTime)

  2. Действие (action), в которое входит действие ошибки (errorAction)

  3. Повторение (recurrence)

  4. Состояния (state)

  5. Состояние (status)

  6. Политика повторов ("retryPolicy")

Рассмотрим каждую из этих частей подробнее.

startTime ― это время начала. Этот параметр позволяет вызывающему объекту указывать смещения часового пояса в формате ISO 8601.

action ― это действие, вызываемое при каждом выполнении задания. В этой части также описывается тип вызова службы. Действие ― это то, что будет выполняться по указанному графику. В настоящее время планировщик поддерживает действия HTTP и очереди хранилища.

Действием в приведенном выше примере является действие HTTP. Ниже приведен пример действия очереди хранилища.


{
        "type": "storageQueue",
        "queueMessage":
        {
            "storageAccount": "myStorageAccount",  // required
            "queueName": "myqueue",                // required
            "sasToken": "TOKEN",                   // required
            "message":                             // required
                "My message body",
        },
}


errorAction ― это обработчик ошибок, действие, которое вызывается при сбое основного действия. С помощью этой переменной можно вызывать конечную точку обработки ошибок или отправить уведомления пользователям. С ее помощью можно обращаться к вторичной конечной точке в случае, если основная конечная точка недоступна (например, при аварии на объекте, где находится конечная точка), либо использовать ее для отправки уведомления конечной точки, выполняющей обработку ошибок. Как и первичное действие, действием, выполняемым в случае возникновения ошибки, может быть простая или составная логика, основанная на других действиях. Инструкции по созданию маркера SAS см. в разделе Создание и использование подписанного URL-адреса.

Повторение состоит из нескольких частей.

  1. Частота: минута, час, день, неделя, месяц или год

  2. Интервал: Интервал повторения с указанной частотой

  3. Предписанное расписание: минуты, часы, будние дни, месяцы и дни месяца для повторения

  4. Количество: число возникновений

  5. Время окончания: никакие задания не будут выполняться после указанного времени окончания

Задание повторяется, если в его определении JSON задан повторяющийся объект. Если заданы значения count и endTime, приоритет отдается правилу выполнения, которое идет первым.

Состояние задания может иметь одно из четырех значений: enabled, disabled, completed или faulted. К заданиям можно применять инструкции PUT и PATCH, чтобы переводить их в состояние enabled или disabled. Если задание было выполнено или завершилось ошибкой, то оно имеет итоговое состояние, которое невозможно изменить (однако к такому заданию можно применить операцию DELETE). Пример свойства состояния приведен ниже.


    "state": "disabled", // enabled, disabled, completed, or faulted

Выполненные задания и задания, завершившиеся с ошибками, удаляются по истечении 60 дней.

После запуска задания планировщика будут возвращены сведения о текущем состоянии задания. Этот объект не может задаваться пользователем — его задает система. Однако он включен в объект задания (а не является отдельным связанным ресурсом), поэтому его состояние можно легко получить.

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

При сбое задания планировщика можно указать политику повторов, чтобы определить, когда и сколько раз будут производиться повторные попытки. Для этого используется объект retryType — при отсутствии политики повторов он устанавливается в значение none, как показано выше. Установите fixed, если политика повторов существует.

Чтобы задать политику повторов, можно указать два дополнительных параметра: интервал повтора (retryInterval) и количество повторных попыток (retryCount).

Интервал повтора, указываемый для объекта retryInterval, является интервалом между повторными попытками. Значение по умолчанию — 1 минута, минимальное значение — 1 минута, максимальное значение — 18 месяцев. Значение указывается в формате ISO 8601. Аналогичным образом, значение количества повторных попыток указывается для объекта retryCount. Значение по умолчанию — 5, а максимальное значение — 20. И retryInterval, и retryCount не являются обязательными: для них используются значения по умолчанию, если для retryType задано fixed, а значения не указаны явным образом.

См. также

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв
Показ:
© 2015 Microsoft