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

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

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

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

В таблице ниже перечислены запланированные задания, предоставляемые монетизацией, и время их запланированного выполнения (все время указано в формате 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 Получает обменный курс в долларах США для каждой поддерживаемой валюты. Каждый день в 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 , - * ? / ДВ
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 с монетизацией .