<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
已安排的作业概览
Monetization 功能提供作业调度程序和一组预先安排在 。
下表列出了创收功能提供的预安排作业及其运行时间 计划运行时间(列出的所有时间均采用世界协调时间)。此外,还列出了每个作业的触发器。
作业 | 说明 | 时间表(世界协调时间) | 触发器 |
---|---|---|---|
开发者每月税率 | 从每个开发者的税务引擎提取税率,并更新开发者 应用修改后的税率。 | 每月第一天凌晨 5:45 | MINT.MONTHLY_DEV_TAXRATE@@@ |
续订 | 对有效价格方案应用周期性费用,或对符合以下条件的未来价格方案应用新费用: 从当天开始。 | 每天午夜后 5 秒 | MINT.RENEW_SUBSCRIPTIONS@@@ |
XeFeed 更新程序 | 获取每种受支持货币的美元汇率。 | 每天午夜后 1 秒 | MINT.XEFEED@@@ |
续订开发者费率方案 | 结转价格方案的续订日期,并计算提前终止费用。 | 每天凌晨 2:20 | MINT.RENEW_DEV_RATEPLAN@@@ |
重试 Transaction Relay | 注意:此作业已弃用,对 创收。 | 每天凌晨 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 软件包可用。 |
运行一次 - 启用作业当天晚上 9:00。
注意:通知只会发送一次,无论您是否
配置导致作业多次执行的 |
MINT.NEW_PACKAGE_NOTIFY@@@ |
新临时通知 | 向所有开发者发送通知,告知 地理位置市场。 |
运行一次 - 启用作业当天晚上 9:00。
注意:通知只会发送一次,无论您是否
配置导致作业多次执行的 |
MINT.ADHOC_NOTIFY@@@ |
新产品通知 | 向所有开发者发送通知,告知他们有新的 API 产品可供使用。 |
运行一次 - 启用作业当天晚上 9:00。
注意:通知只会发送一次,无论您是否
配置导致作业多次执行的 |
MINT.NEW_PRODUCT_NOTIFY@@@ |
新建价格方案通知 |
向受影响的开发者发送通知,告知他们有新的价格方案可用。全部 订阅了父级费率方案的开发者会收到新费率方案的通知, 活动状态。 此外:
|
在新价格方案的开始日期凌晨 4:30 开始运行。 | MINT.NEW_RATEPLAN_NOTIFY@@@ |
新 TNC | 向受影响的开发者发送通知,告知他们新增或修订了条款及条件 (但开发者尚未接受)。 | 在新增或修订后条款及条件的开始日期前 30 天、7 天和 1 天生成 晚上 9 点 | MINT.TNC_ACCEPTANCE_NOTIFY@@@ |
即将到期的费率方案 | 向受影响的开发者发送通知,告知他们已推出价格方案 即将过期。 | 分别在费率方案到期前 30 天、7 天和 1 天的晚上 9:00 运行 | MINT.EXPIRING_RATE_PLAN_NOTIFY@@@ |
使用 API 管理创收作业时间表
以下各部分介绍了如何使用 API 管理创收作业时间表:
如需详细了解本部分中介绍的 API,请参阅 API 中的预定作业。 参考。
配置触发器
调度器依靠触发器来执行作业。计划作业会在其关联 触发器执行。您可以使用触发器的属性来配置作业执行, 值,您就可以控制作业执行特性,例如 执行次数以及频率
两种最常见的触发器类型是 Cron 触发器和简单触发器
触发器。Cron 触发器有一个 cronExpression
属性,用于指定
执行时间表。简单触发器没有 cronExpression
属性;您
指定 startTime
以指示触发器何时生效,以及
endTime
(可选)。
触发器属性如下所示(列出的所有时间均采用世界协调时间):
属性 | 说明 |
---|---|
cronExpression |
用于创建触发器执行时间表的 Cron 表达式,例如:“At 8:00 A.M.
每周一到周五”或“在凌晨 1:30每个月的最后一个星期五”。请参阅
如需了解更多详情,请参阅构建 Cron 表达式。
指定此属性可将触发器定义为 Cron 触发器。 注意:如果 |
enabled |
此标记指示是否已启用触发器执行功能。该值可以是以下几项之一:
以下:
<ph type="x-smartling-placeholder">
|
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
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 表达式值的作业,您可以更改其他属性
例如 startTime
或 priority
。
如需更新预定作业,请向 /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 数据创收。