Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Обзор запланированных заданий
Монетизация предоставляет планировщик заданий и набор заданий, которые предварительно запланированы для выполнения в указанное время.
В таблице ниже перечислены запланированные задания, предоставляемые системой монетизации, и время их выполнения (все время указано в формате UTC). Также указан триггер для каждого задания.
| Работа | Описание | Расписание (UTC) | Курок |
|---|---|---|---|
| Ежемесячная ставка налога для застройщиков | Получает налоговую ставку из налогового механизма для каждого застройщика и обновляет информацию о застройщике с учетом пересмотренной налоговой ставки. | Первый день каждого месяца в 5:45 утра | MINT.MONTHLY_DEV_TAXRATE@@@ |
| Продлить подписку | Применяется периодическая плата за действующие тарифные планы или новая плата за будущие тарифные планы, вступающие в силу с текущего дня. | Каждый день в 5 секунд после полуночи | MINT.RENEW_SUBSCRIPTIONS@@@ |
| XeFeed Updater | Получает обменный курс в долларах США для каждой поддерживаемой валюты. | Каждый день в 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 | , - * ? / LW |
m | Месяц | Да | 1-12 или январь-декабрь | , - * / |
dw | День недели | Да | 1-7 или ВС-СБ | , - * ? / L # |
y | Год | Нет | Пусто или 1970-2099 | , - * / |
Специальные символы определены следующим образом:
| Особый персонаж | Описание |
|---|---|
| * | Используется для выбора всех значений в поле. Например, * в поле "минуты" означает каждую минуту. |
| ? | Используется для указания значения в одном из двух полей, в которых этот символ разрешен, но не в другом. Например, если вы хотите, чтобы триггер срабатывал в определенный день месяца (скажем, 10-го), но вам не важен день недели, укажите 10 в поле «День месяца» и знак вопроса (?) в поле «День недели». |
| - | Используется для указания диапазонов. Например, 10-12 в поле "часы" означает часы 10, 11 и 12. |
| , | Используется для указания дополнительных значений. Например, MON,WED,FRI в поле "День недели" означает понедельник, среду и пятницу. |
| / | Используется для указания приращений. Например, 0/15 в поле секунд означает секунды 0, 15, 30 и 45. А 5/15 в поле секунд означает секунды 5, 20, 35 и 50. После символа " можно также указать /. Это эквивалентно тому, чтобы перед / стояло 0. Указание 1/3 в поле дня месяца означает выполнение каждые 3 дня, начиная с первого дня месяца. |
| Л | В каждом из двух допустимых полей значение L может отличаться. В поле «День месяца» буква L означает последний день месяца, то есть 31-й день января или 28-й день февраля в невисокосные годы. В поле «День недели» L означает последний день недели, то есть 7-й или SAT. Но если в поле «День недели» используется после другого значения, это означает последний xxx-й день месяца. Например, 6L означает последнюю пятницу месяца. |
| В | Используется для указания ближайшего к заданному дню недели (понедельник-пятница). Например, если в поле «День месяца» указано 15W, это означает ближайший к 15-му числу месяца день недели. Таким образом, если 15-е число — суббота, триггер сработает в пятницу, 14-го числа. Если 15-е число — воскресенье, триггер сработает в понедельник, 16-го числа. Если 15-е число — вторник, то он сработает во вторник, 15-го числа. Однако, если в поле «День месяца» указано 1W, и 1-е число — суббота, триггер сработает в понедельник, 3-го числа, поскольку он не будет «перепрыгивать» через границу дней месяца. Символ W можно указывать только тогда, когда день месяца — это один день, а не диапазон или список дней. |
| # | Используется для указания n-го дня XXX месяца. Например, значение 6#3 в поле дня недели означает третью пятницу месяца (день 6 = пятница, а #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 ? * 6L 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), можно изменять только значения свойств cronExpression и enabled. Другие изменения игнорируются. Для заданий, не указывающих значение выражения cron, можно изменять другие свойства, такие как startTime или priority .
Для обновления запланированного задания отправьте PUT-запрос по адресу /triggers/{trig_id} , где {trig_id} — это идентификатор триггера задания, как описано в разделе «Обзор запланированных заданий» . При внесении изменений необходимо указать в теле запроса обновленные настройки и идентификатор триггера.
Например, следующий запрос обновляет выражение cron для задания «Продление тарифного плана для новых разработчиков», чтобы оно запускалось ежедневно в 5:00 утра по UTC:
$ 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 с системой монетизации» .