安排创收作业

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

已安排的作业概览

Monetization 功能提供作业调度程序和一组预先安排在 。

下表列出了创收功能提供的预安排作业及其运行时间 计划运行时间(列出的所有时间均采用世界协调时间)。此外,还列出了每个作业的触发器。

作业 说明 时间表(世界协调时间) 触发器
开发者每月税率 从每个开发者的税务引擎提取税率,并更新开发者 应用修改后的税率。 每月第一天凌晨 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
重试 Transaction Relay 注意:此作业已弃用,对 创收。 每天凌晨 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 软件包可用。 运行一次 - 启用作业当天晚上 9:00。

注意:通知只会发送一次,无论您是否 配置导致作业多次执行的 cronExpression 次。

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
新临时通知 向所有开发者发送通知,告知 地理位置市场。 运行一次 - 启用作业当天晚上 9:00。

注意:通知只会发送一次,无论您是否 配置导致作业多次执行的 cronExpression 次。

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
新产品通知 向所有开发者发送通知,告知他们有新的 API 产品可供使用。 运行一次 - 启用作业当天晚上 9:00。

注意:通知只会发送一次,无论您是否 配置导致作业多次执行的 cronExpression 次。

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
新建价格方案通知

向受影响的开发者发送通知,告知他们有新的价格方案可用。全部 订阅了父级费率方案的开发者会收到新费率方案的通知, 活动状态。

此外:

  • 如果价格方案是标准方案,则所有开发者都会收到通知。
  • 如果是开发者类别费率方案,则只有该类别的开发者可获得 通知。
  • 如果是开发者费率方案,则只有该特定开发者 通知。
在新价格方案的开始日期凌晨 4:30 开始运行。 MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
新 TNC 向受影响的开发者发送通知,告知他们新增或修订了条款及条件 (但开发者尚未接受)。 在新增或修订后条款及条件的开始日期前 30 天、7 天和 1 天生成 晚上 9 点 MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
即将到期的费率方案 向受影响的开发者发送通知,告知他们已推出价格方案 即将过期。 分别在费率方案到期前 30 天、7 天和 1 天的晚上 9:00 运行 MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

使用 API 管理创收作业时间表

以下各部分介绍了如何使用 API 管理创收作业时间表:

如需详细了解本部分中介绍的 API,请参阅 API 中的预定作业。 参考。

配置触发器

调度器依靠触发器来执行作业。计划作业会在其关联 触发器执行。您可以使用触发器的属性来配置作业执行, 值,您就可以控制作业执行特性,例如 执行次数以及频率

两种最常见的触发器类型是 Cron 触发器简单触发器 触发器。Cron 触发器有一个 cronExpression 属性,用于指定 执行时间表。简单触发器没有 cronExpression 属性;您 指定 startTime 以指示触发器何时生效,以及 endTime(可选)。

触发器属性如下所示(列出的所有时间均采用世界协调时间):

属性 说明
cronExpression 用于创建触发器执行时间表的 Cron 表达式,例如:“At 8:00 A.M. 每周一到周五”或“在凌晨 1:30每个月的最后一个星期五”。请参阅 如需了解更多详情,请参阅构建 Cron 表达式

指定此属性可将触发器定义为 Cron 触发器。

注意:如果 cronExpression 和 已指定 startTime 个(共 endTime 个),cronExpression 优先级。

enabled 此标记指示是否已启用触发器执行功能。该值可以是以下几项之一: 以下: <ph type="x-smartling-placeholder">
    </ph>
  • true。触发器可以执行。
  • false。触发器已停用,因此不会执行。
endTime 触发器的时间表不再有效时,采用纪元格式的时间。
group 将在其中执行触发器的服务器类型。例如,如果触发器是 应在管理服务器中执行,则该值应设置为 management-server。触发器是否应在消息中执行 处理服务器,则该值设置为 message-processor
id 触发器的标识。
jobId 要执行的作业的标识。
name 用于标识触发器的唯一名称。
priority 已安排执行多个触发器时,相应触发器的相对执行优先级 值越小,优先级越高。例如,如果两个触发器 同时执行多个触发器,且有一个触发器的优先级为 1,并且 其他优先级为 2 的触发器将首先执行优先级为 1 的触发器。

仅当多个触发器执行完全相同的操作时,此属性才适用 。

startTime 仅适用于简单触发器。

触发器的时间表生效的周期格式时间。

注意:如果 cronExpressionstartTime/endTimecronExpression 优先。

suiteId 用于指定通知部分是系统级还是默认级的标志 。有效值为 DEFAULTSYSTEM,或者 则可以指定自己独有的套件名称
triggerDataMap 锁定键 custom_lock_key,可防止多个服务器执行 同时执行同一作业。

构建 Cron 表达式

Cron 表达式是一个由六个或七个字段(以空格分隔)组成的字符串。通过 表达式表示一组时间,通常作为执行例程的计划。Cron 使用在触发器的 cronExpression 属性中指定的表达式 来安排该触发器的执行。

Cron 表达式采用以下格式:s m h dm m dw y

其中:

字段 说明 必填 允许使用的值 允许使用的特殊字符
s 0-59 , - * /
m 分钟 0-59 , - * /
h 小时 0-23 , - * /
dm 日期 0-31 , - * ?/ L
m 1-12 或 JAN-DEC , - * /
dw 周几 1-7 或 SUN-SAT , - * ?/ 门牌号
y 空白或 1970-2099 , - * /

特殊字符定义如下:

特殊字符 说明
* 用于选择某个字段内的所有值。例如,分钟字段中的 * 表示 。
? 用于指定两个字段中某个允许包含该字符的内容, 而不是另一个。例如,如果您希望触发器在某天 月份(例如 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 月字段表示当月的最后一天,即 1 月的第 31 天,或 平年 2 月。在星期几字段中,L 表示该周的最后一天, 即 7 或 SAT。但如果在星期几字段中使用另一个值,则表示 每月最后 xxx 天。例如,6L 表示当月的最后一个星期五。
W 用于指定离给定日期最近的工作日(星期一至星期五)。例如,如果 在日期字段中指定 15W,则表示最接近 。因此,如果 15 号是星期六,则触发器将在 14 号星期五执行。如果 15 号是星期日,触发器将在 16 号星期一执行。如果 15 日是星期二, 则将在 15 号星期二执行不过,如果您为一个月中的某一天指定 1W, 而 1 号是星期六,则触发器将在 3 号星期一执行,因为它 “跳跃”超过一个月的边界时的数据。只有在以下情况中才能指定 W 字符: 日期是一天,而不是一个范围或日期列表。
# 用于指定一个月中的第 n XXX 天。例如,今天的值 6#3 周字段表示该月的第三个星期五(第 6 天 = 星期五,#3 表示该月的第 3 个星期五) )。其他示例:2#1 = 一个月的第一个星期一,4#5 = 第五个 每月星期三。

以下是 Cron 表达式的一些示例(列出的所有时间均采用世界协调时间):

Cron 表达式 执行时间表
0 0 12 * * ? 中午 12 点(中午)。
0 15 10 * * ?2013 上午 10:15都是如此
0 10、44 14 ?3 周三 下午 2:10和下午 2:44三月份的每个星期三
0 15 10?* 6L 2013-2015 上午 10:152013 年、2014 年以及 2014 年每个月的最后一个星期五 2015 年。
0 15 10?* 6#3 上午 10:15每月第三个星期五

使用 API 查看预定作业

您可以向 /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
},
...
]

您还可以查看特定的计划作业,只需向 /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 表达式值的作业,您可以更改其他属性 例如 startTimepriority

如需更新预定作业,请向 /triggers/{trig_id} 发出 PUT 请求,其中 {trig_id} 是作业触发器的标识,如预定作业概览中所述。在进行更新时,您需要在 更新后的设置和触发器的 ID。

例如,以下请求更新新开发者费率计划的 Cron 表达式 每天凌晨 5 点运行的续订作业世界协调时间 (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。

后续步骤

建议您定期与贵组织及其 开发者、应用和产品。了解具体方法 同步 利用 Apigee Edge 数据创收