Расписание заданий по монетизации

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Обзор запланированных заданий

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

В таблице ниже перечислены запланированные задания, предоставляемые системой монетизации, и время их выполнения (все время указано в формате UTC). Также указан триггер для каждого задания.

Работа Описание Расписание (UTC) Курок
Ежемесячная ставка налога для застройщиков Получает налоговую ставку из налогового механизма для каждого застройщика и обновляет информацию о застройщике с учетом пересмотренной налоговой ставки. Первый день каждого месяца в 5:45 утра MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Продлить подписку Применяется периодическая плата за действующие тарифные планы или новая плата за будущие тарифные планы, вступающие в силу с текущего дня. Каждый день в 5 секунд после полуночи MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
XeFeed Updater Получает обменный курс в долларах США для каждой поддерживаемой валюты. Каждый день в 1 секунду после полуночи MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Продление тарифного плана для застройщиков Функция переносит даты продления тарифного плана и рассчитывает штрафы за досрочное расторжение договора. Каждый день в 2:20 утра MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Повторная попытка передачи транзакции Примечание : Данная задача устарела и не влияет на монетизацию. Каждый день в 4:30 утра MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Очиститель транзакций Примечание : Данная задача устарела и не влияет на монетизацию. Каждый день в 5:30 утра MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Аудит баланса разработчика Проводит аудит баланса учетной записи разработчика. Копирует данные о текущем использовании и балансе предоплаченных услуг/лимите кредита постоплатных услуг в таблицу аудита, затем вычитает текущее использование из учетной записи разработчика и обнуляет баланс использования. Первый день каждого месяца в 5 секунд после полуночи. MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Документы для ежемесячного выставления счетов Создает платежные документы.

Примечание: Apigee больше не поддерживает генерацию платежных документов из Apigee Edge Monetization. См. раздел «Прекращение поддержки» .

11-го числа каждого месяца в 1 минуту после полуночи. MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Счетчик тарифных планов для застройщиков Примечание : Данная задача устарела и не влияет на монетизацию. Каждый день в 3 секунды после полуночи MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Ежедневные платежи Пересчитывает все почасовые суммы транзакций и использует их для расчета суточных сумм за предыдущий день. Каждый день в 1:20 утра MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Почасовая оплата Вычисляет общую сумму всех транзакций за каждый отрезок времени (четверть часа). 1 минута после каждой четверти часа MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Настройка уведомлений об обновлении Переиндексирует все условия уведомлений. Каждые 5 минут MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Отправлять уведомления по электронной почте Отправляет накопившиеся уведомления по электронной почте Каждый час MINT.EMAIL_NOTIFICATION@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Ограничение на обновление Примечание : Данная задача устарела и не влияет на монетизацию. Н/Д (Никогда не выполняется) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

Помимо перечисленных выше задач, существуют задачи, которые можно активировать с помощью уведомлений о событиях, как показано в следующей таблице. Для получения дополнительной информации см. раздел «Настройка уведомлений» .

Работа Описание Расписание Курок
Уведомление о новом пакете Отправляет уведомление всем разработчикам о доступности нового пакета API. Запускается один раз — в день активации задания в 21:00.

Примечание : Уведомления отправляются только один раз, независимо от того, настроено ли cronExpression , которое приводит к многократному выполнению задания.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Новое внеплановое уведомление Отправляет уведомление всем разработчикам о том, что новые API-продукты доступны на конкретных географических рынках. Запускается один раз — в день активации задания в 21:00.

Примечание : Уведомления отправляются только один раз, независимо от того, настроено ли cronExpression , которое приводит к многократному выполнению задания.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Уведомление о новом продукте Отправляет уведомление всем разработчикам о доступности нового API-продукта. Запускается один раз — в день активации задания в 21:00.

Примечание : Уведомления отправляются только один раз, независимо от того, настроено ли cronExpression , которое приводит к многократному выполнению задания.

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Уведомление о новом тарифном плане

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

Кроме того:

  • Если тарифный план является стандартным, все застройщики получат уведомление.
  • Если это тарифный план для разработчиков, то уведомления получат только разработчики, относящиеся к этой категории.
  • Если это тарифный план для застройщиков, уведомление получит только конкретный застройщик.
Начинается в день вступления в силу нового тарифного плана, в 4:30 утра. MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Новая ТНК Отправляет уведомление затронутым разработчикам о том, что были опубликованы новые или пересмотренные Условия использования (и разработчик еще не принял их). Действует за 30, 7 и 1 день до даты вступления в силу новых или пересмотренных Условий и положений, в 21:00. MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Срок действия тарифного плана истекает Отправляет уведомление затронутым разработчикам, чтобы заранее предупредить их о скором истечении срока действия тарифного плана. Акция действует за 30, 7 и 1 день до окончания действия тарифного плана, в 21:00. MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Управление расписанием заданий монетизации с помощью API.

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

Для получения дополнительной информации об API, описанных в этом разделе, см. раздел «Запланированные задания» в справочнике API.

Настройка триггеров

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

Наиболее распространенные типы триггеров — это cron-триггеры и простые триггеры . У cron-триггера есть свойство cronExpression , которое задает расписание выполнения. У простого триггера свойства cronExpression нет; вы указываете startTime , чтобы определить, когда триггер вступит в силу, и, при необходимости, endTime .

Свойства триггера следующие (все указанные времена приведены в формате UTC):

Свойство Описание
cronExpression Выражение Cron для создания расписания выполнения триггера, например: «В 8:00 утра с понедельника по пятницу» или «В 1:30 утра в последнюю пятницу месяца». Дополнительные сведения см. в разделе «Создание выражений Cron» .

Указание этого свойства определяет триггер как триггер cron.

Примечание : Если указаны как cronExpression , так и startTime / endTime , приоритет имеет cronExpression .

enabled Флаг, указывающий, разрешен ли запуск триггера. Значение может быть одним из следующих:
  • true . Триггер разрешен для выполнения.
  • false . Триггер отключен — он не будет выполнен.
endTime Время в формате эпохи, когда расписание срабатывания триггера перестаёт действовать.
group Тип сервера, на котором будет выполняться триггер. Например, если триггер должен выполняться на сервере управления, значение следует установить на management-server . Если триггер должен выполняться на сервере обработки сообщений, значение следует установить на message-processor .
id Идентификация триггера.
jobId Определение задачи, которую необходимо выполнить.
name Уникальное имя, используемое для идентификации триггера.
priority Относительный приоритет выполнения триггеров, если одновременно запланировано несколько триггеров. Чем ниже значение, тем выше приоритет. Например, если одновременно запланировано два триггера, и если один триггер имеет приоритет 1, а другой — 2, то первым выполнится триггер с приоритетом 1.

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

startTime Применяется только к простым триггерам.

Время в формате эпохи, когда расписание срабатывания триггера вступает в силу.

Примечание : Если указаны как cronExpression , так и startTime / endTime , приоритет имеет cronExpression .

suiteId Флаг, указывающий, является ли уведомление частью системного или стандартного набора уведомлений. Допустимые значения: DEFAULT или SYSTEM , или вы можете указать собственное уникальное имя набора уведомлений.
triggerDataMap Ключ блокировки, custom_lock_key , предотвращает одновременное выполнение одной и той же задачи несколькими серверами.

Создание выражений cron

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

Выражение cron имеет следующий формат: 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 с системой монетизации» .