Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Обзор запланированных заданий
Монетизация предоставляет планировщик заданий и набор заданий, которые заранее запланированы для запуска в назначенное время.
В таблице ниже перечислены запланированные задания, предоставляемые монетизацией, и время их запланированного выполнения (все время указано в формате UTC). Также указан триггер для каждого задания.
Работа | Описание | Расписание (UTC) | Курок |
---|---|---|---|
Ежемесячная ставка налога застройщика | Получает ставку налога из налоговой системы для каждого разработчика и обновляет объект-разработчик, используя пересмотренную ставку налога. | Первого числа каждого месяца в 5:45. | MINT.MONTHLY_DEV_TAXRATE@@@ |
Продлить подписку | Применяет повторяющиеся комиссии для активных тарифных планов или новые комиссии для будущих тарифных планов, которые начинаются с текущего дня. | Каждый день в 5 секунд после полуночи | MINT.RENEW_SUBSCRIPTIONS@@@ |
Программа обновления XeFeed | Получает обменный курс в долларах США для каждой поддерживаемой валюты. | Каждый день в 1 секунду после полуночи | MINT.XEFEED@@@ |
Продлить тарифный план для разработчиков | Переносит даты продления тарифного плана и рассчитывает плату за досрочное прекращение. | Каждый день в 2:20 ночи | MINT.RENEW_DEV_RATEPLAN@@@ |
Ретрансляция повторной транзакции | Примечание . Эта вакансия устарела и не влияет на монетизацию. | Каждый день в 4:30 утра | MINT.RETRY_TX_RELAY@@@ |
Очиститель транзакций | Примечание . Эта вакансия устарела и не влияет на монетизацию. | Каждый день в 5:30 утра | MINT.TX_CLEANSER@@@ |
Аудит баланса разработчиков | Проверяет баланс аккаунта разработчика. Копирует текущее использование и баланс предоплаты/кредитный лимит постоплаты в таблицу аудита, затем вычитает текущее использование из учетной записи разработчика и возвращает баланс использования к нулю. | Первый день каждого месяца в 5 секунд после полуночи. | MINT.DEVELOPER_BALANCE_AUDIT@@@ |
Ежемесячная платежная документация | Формирует платежные документы. Примечание. Apigee больше не поддерживает создание платежных документов с помощью Apigee Edge Monetization. См. Пенсии . | 11-го числа каждого месяца в 1 минуту после полуночи. | MINT.MONTLY_BILLING_DOCS@@@ |
Счетчик тарифных планов для разработчиков | Примечание . Эта вакансия устарела и не влияет на монетизацию. | Каждый день в 3 секунды после полуночи | MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@ |
Ежедневные сборы | Пересчитывает все почасовые итоги транзакций и использует их для расчета ежедневных итогов за предыдущий день. | Каждый день в 1:20 ночи | MINT.CHARGE_DAILY@@@ |
Почасовая оплата | Вычисляет все суммы транзакций за каждую четверть часа. | 1 минута каждой четверти часа | MINT.CHARGE_HOURLY@@@ |
Обновить конфигурацию уведомлений | Переиндексирует все условия уведомления. | Каждые 5 минут | MINT.REFRESH_NOTIFICATION_CONFIG@@@ |
Отправлять уведомления по электронной почте | Отправляет накопленные уведомления по электронной почте | Каждый час | MINT.EMAIL_NOTIFICATION@@@ |
Обновить лимит | Примечание . Эта вакансия устарела и не влияет на монетизацию. | Н/Д (никогда не выполняется) | MINT.REFRESH_LIMIT@@@ |
Помимо заданий, перечисленных выше, существуют задания, которые можно включить с помощью уведомлений о событиях, как указано в следующей таблице. Дополнительную информацию см. в разделе Настройка уведомлений .
Работа | Описание | Расписание | Курок |
---|---|---|---|
Уведомление о новом пакете | Отправляет уведомление всем разработчикам о доступности нового пакета API. | Запускается один раз — в день включения задания в 21:00. Примечание . Уведомления отправляются только один раз, независимо от того, настроено ли вы | MINT.NEW_PACKAGE_NOTIFY@@@ |
Новое специальное уведомление | Отправляет уведомление всем разработчикам о том, что новые продукты API доступны на определенных географических рынках. | Запускается один раз — в день включения задания в 21:00. Примечание . Уведомления отправляются только один раз, независимо от того, настроено ли вы | MINT.ADHOC_NOTIFY@@@ |
Уведомление о новом продукте | Отправляет уведомление всем разработчикам о доступности нового продукта API. | Запускается один раз — в день включения задания в 21:00. Примечание . Уведомления отправляются только один раз, независимо от того, настроено ли вы | MINT.NEW_PRODUCT_NOTIFY@@@ |
Уведомление о новом тарифном плане | Отправляет уведомление затронутым разработчикам о доступности нового тарифного плана. Все разработчики, подписавшиеся на родительский тарифный план, получают уведомление о том, что новый тарифный план активен. Кроме того:
| Действует в дату начала действия нового тарифного плана, в 4:30 утра. | MINT.NEW_RATEPLAN_NOTIFY@@@ |
Новый ТНК | Отправляет затронутым разработчикам уведомление о том, что были опубликованы новые или пересмотренные Условия использования (и разработчик еще не принял их). | Запускается за 30, 7 и 1 день до даты начала действия новых или пересмотренных Положений и условий в 21:00. | MINT.TNC_ACCEPTANCE_NOTIFY@@@ |
Срок действия тарифного плана истекает | Отправляет уведомление затронутым разработчикам, чтобы заранее предупредить об истечении срока действия тарифного плана. | Запускается за 30, 7 и 1 день до окончания срока действия тарифного плана, в 21:00. | MINT.EXPIRING_RATE_PLAN_NOTIFY@@@ |
Управление графиком заданий монетизации с помощью API
В следующих разделах описано, как управлять расписанием заданий монетизации с помощью API:
- Настройка триггеров
- Создание выражений cron
- Просмотр запланированных заданий с помощью API
- Обновление запланированных заданий с помощью API
- Отключение и повторное включение запланированного задания с помощью API
Дополнительные сведения об API, описанных в этом разделе, см. в разделе «Запланированные задания» справочника по API.
Настройка триггеров
Планировщик использует триггеры для выполнения заданий. Запланированное задание выполняется при выполнении связанного с ним триггера. Свойства триггера настраивают выполнение задания, и, задав значение этих свойств, вы можете контролировать характеристики выполнения задания, например, когда и как часто выполняется задание.
Двумя наиболее распространенными типами триггеров являются триггеры cron и простые триггеры . Триггер cron имеет свойство cronExpression
, которое определяет расписание выполнения. Простой триггер не имеет свойства cronExpression
; вы указываете startTime
, чтобы указать, когда триггер вступит в силу, и, при необходимости, endTime
.
Свойства триггера следующие (время указано в формате UTC):
Свойство | Описание |
---|---|
cronExpression | Выражение Cron для создания расписания выполнения триггера, например: «В 8:00 утра с понедельника по пятницу» или «В 1:30 утра каждую последнюю пятницу месяца». Дополнительные сведения см. в разделе Создание выражений cron . Указание этого свойства определяет триггер как триггер cron. Примечание . Если указаны и |
enabled | Флаг, указывающий, разрешено ли выполнение триггера. Значение может быть одним из следующих:
|
endTime | Время в формате эпохи, когда расписание триггера больше не действует. |
group | Тип сервера, на котором будет выполняться триггер. Например, если триггер должен выполняться на сервере управления, значение должно быть установлено на management-server . Если триггер должен выполняться на сервере обработки сообщений, значение должно быть установлено в message-processor . |
id | Идентификация триггера. |
jobId | Идентификация работы, которую необходимо выполнить. |
name | Уникальное имя, используемое для идентификации триггера. |
priority | Относительный приоритет выполнения триггеров, если одновременное выполнение нескольких триггеров запланировано. Чем ниже значение, тем выше приоритет. Например, если запланировано одновременное выполнение двух триггеров и если один триггер имеет приоритет 1, а другой — 2, первым выполняется триггер с приоритетом 1. Это свойство применяется только в том случае, если несколько триггеров имеют одинаковое время выполнения. |
startTime | Применяется только к простым триггерам. Время в формате эпохи, когда расписание триггера вступает в силу. Примечание . Если указаны и |
suiteId | Флаг, указывающий, является ли уведомление частью набора уведомлений системного уровня или уровня по умолчанию. Допустимые значения: DEFAULT или SYSTEM . Вы также можете указать собственное уникальное имя пакета. |
triggerDataMap | Ключ блокировки custom_lock_key , который не позволяет нескольким серверам одновременно выполнять одно и то же задание. |
Создание выражений cron
Выражение cron — это строка, состоящая из шести или семи полей, разделенных пробелами. Выражение представляет собой набор времен, обычно в виде расписания выполнения процедуры. Выражения Cron, указанные в свойстве cronExpression
триггера, используются для планирования выполнения этого триггера.
s mh dm m dw y
Где:
Поле | Описание | Необходимый | Допустимые значения | Разрешенные специальные символы |
---|---|---|---|---|
s | Секунды | Да | 0-59 | , - * / |
m | Минуты | Да | 0-59 | , - * / |
h | Часы | Да | 0-23 | , - * / |
dm | День месяца | Да | 0-31 | , - * ? / ДВ |
m | Месяц | Да | 1–12 или ЯНВАРЬ–ДЕКАБРЬ | , - * / |
dw | День недели | Да | 1-7 или ВС-СБ | , - * ? / Л # |
y | Год | Нет | Пустой или 1970-2099 гг. | , - * / |
Специальные символы определяются следующим образом:
Специальный персонаж | Описание |
---|---|
* | Используется для выбора всех значений в поле. Например, * в поле минут означает каждую минуту. |
? | Используется для указания чего-либо в одном из двух полей, в котором допускается использование символа, но не в другом. Например, если вы хотите, чтобы триггер выполнялся в определенный день месяца (скажем, 10-го числа), но не важно, в какой день недели, укажите 10 в поле дня месяца и ? в поле дня недели. |
- | Используется для указания диапазонов. Например, цифры 10-12 в поле часов означают 10, 11 и 12 часов. |
, | Используется для указания дополнительных значений. Например, ПН, СР, ПТ в поле дня недели означает понедельник, среду и пятницу. |
/ | Используется для указания приращений. Например, 0/15 в поле секунд означает секунды 0, 15, 30 и 45. А 5/15 в поле секунд означают секунды 5, 20, 35 и 50. Вы также можете указать / после " Это эквивалентно использованию 0 перед /. Указание 1/3 в поле дня месяца означает выполнение каждые 3 дня, начиная с первого дня месяца. |
л | Имеет разное значение в каждой из двух областей, в которых оно разрешено. L в поле дня месяца означает последний день месяца, то есть 31-й день января или 28-й день февраля в невисокосные годы. В поле дня недели L означает последний день недели, то есть 7 или SAT. Но если оно используется в поле дня недели после другого значения, это означает последний xxx день месяца. Например, 6L означает последнюю пятницу месяца. |
Вт | Используется для указания дня недели (понедельник-пятница), ближайшего к данному дню. Например, если вы укажете 15 Вт в поле дня месяца, это означает ближайший к 15-му числу месяца рабочий день. Таким образом, если 15-е число — суббота, триггер сработает в пятницу 14-го. Если 15-е число — воскресенье, триггер сработает в понедельник 16-го числа. Если 15-е число — вторник, то оно будет выполнено во вторник 15-го числа. Однако если вы укажете 1W для дня месяца, а 1-е число — суббота, триггер сработает в понедельник, 3-го числа, поскольку он не «перепрыгнет» границу дней месяца. Символ W можно указать только в том случае, если день месяца представляет собой один день, а не диапазон или список дней. |
# | Используется для указания n-го XXX дня месяца. Например, значение 6#3 в поле дня недели означает третью пятницу месяца (день 6 = пятница и #3 = 3-й день месяца). Другие примеры: 2#1 = первый понедельник месяца, 4#5 = пятая среда месяца. |
Вот несколько примеров выражений cron (время указано в формате UTC):
Выражение Cron | График выполнения |
---|---|
0 0 12 * * ? | 12:00 (полдень) каждый день. |
0 15 10 * * ? 2013 год | 10:15 каждый день в течение 2013 года. |
0 10,44 14 ? 3 СР | 14:10 и 14:44 каждую среду в марте. |
0 15 10 ? * 6Л 2013-2015 гг. | 10:15 в последнюю пятницу каждого месяца в 2013, 2014 и 2015 годах. |
0 15 10 ? * 6#3 | 10:15 в третью пятницу каждого месяца. |
Просмотр запланированных заданий с помощью API
Вы можете просмотреть все запланированные на данный момент задания, отправив запрос GET к /triggers?orgid={org_name}
.
Например:
$ curl -H "Accept:application/json" -X GET \ "http://localhost:8080/v1/mint/triggers?orgid={org_name}" \ -u email:password
Ниже приведен пример ответа:
[ { "createdDate" : 1457924378176, "cronExpression" : "3 0 0 * * ?", "enabled" : true, "group" : "management-server", "id" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT", "jobId" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server", "name" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server@@@DEFAULT", "priority" : "1", "suiteId" : "DEFAULT", "triggerDataMap" : { "custom_lock_key" : "mint.scheduler.__ORG_ID__.resetdeveloperrateplancounter@@@management" }, "updatedDate" : 1457924378176 }, { "createdDate" : 1457924378014, "cronExpression" : "", "enabled" : true, "group" : "management-server", "id" : "MINT.ADHOC_NOTIFY@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT", "jobId" : "MINT.ADHOC_NOTIFY@@@management-server", "name" : "MINT.ADHOC_NOTIFY@@@management-server@@@DEFAULT", "priority" : "4", "startTime" : "1372916749000", "suiteId" : "DEFAULT", "triggerDataMap" : { "custom_lock_key" : "mint.scheduler.__ORG_ID__.adhocnotify@@@management" }, "updatedDate" : 1457924378014 }, { "createdDate" : 1457924377877, "cronExpression" : "0 20 1 * * ?", "enabled" : true, "group" : "management-server", "id" : "MINT.CHARGE_DAILY@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT", "jobId" : "MINT.CHARGE_DAILY@@@management-server", "name" : "MINT.CHARGE_DAILY@@@management-server@@@DEFAULT", "priority" : "1", "suiteId" : "DEFAULT", "triggerDataMap" : { "custom_lock_key" : "mint.scheduler.__ORG_ID__.chargedaily@@@management" }, "updatedDate" : 1457924377877 }, ... ]
Вы также можете просмотреть определенное запланированное задание, отправив запрос GET к /triggers/{trig_id}
, где {trig_id}
— это идентификатор триггера задания, как описано в разделе Обзор запланированных заданий . Например:
$ curl -X GET \ "http://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT" \ -u email:password
Ниже приведен пример ответа:
{ "createdDate" : 1457924377925, "cronExpression" : "0 20 2 * * ?", "enabled" : true, "group" : "management-server", "id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT", "jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server", "name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT", "priority" : "1", "suiteId" : "DEFAULT", "triggerDataMap" : { "custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management" }, "updatedDate" : 1457924377925 }
Обновление запланированных заданий с помощью API
Вы можете обновить запланированное задание, изменив свойства его триггера. Например, вам может потребоваться изменить расписание выполнения триггера.
Для заданий триггера cron (то есть заданий, которые включают значение выражения cron) можно изменять только значения cronExpression
и включенных свойств. Остальные изменения игнорируются. Для заданий, в которых не указано значение выражения cron, вы можете изменить другие свойства, такие как startTime
или priority
.
Чтобы обновить запланированное задание, отправьте запрос PUT к /triggers/{trig_id}
, где {trig_id}
— это идентификатор триггера задания, как описано в разделе Обзор запланированных заданий . При выполнении обновления вам необходимо указать в теле запроса обновленные настройки и идентификатор триггера.
Например, следующий запрос обновляет выражение cron для задания обновления тарифного плана нового разработчика, которое будет запускаться каждый день в 5 утра по всемирному координированному времени:
$ curl -H "Content-Type: application/json" -X PUT -d \ '{ "cronExpression" : "0 0 5 * * ?", "enabled" : true, "group" : "management-server", "id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT", "jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server", "name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT", "priority" : "1", "suiteId" : "DEFAULT", "triggerDataMap" : { "custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management" }, }' \ https://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT \ -u email:password
Отключение и повторное включение запланированного задания с помощью API
Чтобы отключить запланированное задание, установите enabled
свойства его триггера значение false. Например:
$ curl -H "Content-Type: application/json" -X PUT -d \ '{ "cronExpression" : "0 0 5 * * ?", "enabled" : false, "group" : "management-server", "id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT", "jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server", "name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT", "priority" : "1", "suiteId" : "DEFAULT", "triggerDataMap" : { "custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management" }, }' \ https://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT \ -u email:password
Чтобы повторно включить отключенное задание, установите для свойства enabled
его триггера значение true.
Следующие шаги
Рекомендуется периодически повторно синхронизировать монетизацию вашей организации и любых разработчиков, приложений и продуктов, которые вы создали с помощью Edge API Services. Узнайте, как синхронизировать данные Apigee Edge с монетизацией .