查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
排程工作總覽
營利服務提供工作排程器和一組預先排定執行時間的工作 指定時間。
下表列出營利政策提供的預先排定工作/工作時間 排定執行時間 (所有時間均以世界標準時間為準)。此外,清單中也列出各項工作的觸發條件。
工作 | 說明 | 排程 (世界標準時間) | 觸發條件 |
---|---|---|---|
每月開發人員稅率 | 從每位開發人員的稅務引擎中擷取稅率,並更新開發人員 採用修訂版稅率的實體。 | 每個月的第一天,上午 5:45。 | MINT.MONTHLY_DEV_TAXRATE@@@ |
續約 | 針對有效的費率方案收取週期性費用,或為日後的費率方案套用新費用 從當天開始 | 每天的 5 秒過後午夜 | MINT.RENEW_SUBSCRIPTIONS@@@ |
XeFeed 更新器 | 取得每種支援幣別的美元匯率。 | 每天午夜 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 套件。 |
會在工作啟用當天下午 9 點執行一次。
注意:無論您是否接收通知,系統都只會傳送通知一次
設定 |
MINT.NEW_PACKAGE_NOTIFY@@@ |
新臨時通知 | 向所有開發人員傳送通知,說明新的 API 產品在特定 以及地理區域市場 |
會在工作啟用當天下午 9 點執行一次。
注意:無論您是否接收通知,系統都只會傳送通知一次
設定 |
MINT.ADHOC_NOTIFY@@@ |
新產品通知 | 傳送通知給所有開發人員,說明有新的 API 產品可用。 |
會在工作啟用當天下午 9 點執行一次。
注意:無論您是否接收通知,系統都只會傳送通知一次
設定 |
MINT.NEW_PRODUCT_NOTIFY@@@ |
新費率方案通知 |
通知受影響的開發人員已推出新的費率方案。所有語言 訂閱上層費率方案的開發人員會看到新的費率方案 有效。 此外:
|
在新費率方案的開始日期凌晨 4:30 執行, | MINT.NEW_RATEPLAN_NOTIFY@@@ |
新的 Tnc | 傳送通知給受影響的開發人員,說明已新增或修改的條款及細則 已發布 (且開發人員尚未接受)。 | 會在新的或修改後的《條款及細則》開始日期前 30、7 和 1 天放送。 晚上 9:00 | MINT.TNC_ACCEPTANCE_NOTIFY@@@ |
費率方案即將到期 | 事先通知受影響的開發人員,說明費率方案 即將到期的 Pod | 會在費率方案到期前 30、7 和 1 天執行 (下午 9:00)。 | MINT.EXPIRING_RATE_PLAN_NOTIFY@@@ |
使用 API 管理營利工作時間表
以下各節說明如何使用 API 管理營利工作時間表:
如要進一步瞭解本節所述的 API,請參閱 API 中的已排定的工作。 參照。
設定觸發條件
排程器仰賴觸發條件執行工作。已排定的工作會在具有關聯 就會觸發該函式觸發條件的屬性可設定工作執行作業,以及設定 值,就能控制工作執行的特性,例如工作時 以及其執行頻率
最常見的觸發條件是「Cron 觸發條件」和「簡單」
觸發條件。Cron 觸發條件的 cronExpression
屬性指定了
執行排程簡易觸發條件不含 cronExpression
屬性;你
指定 startTime
以表示觸發條件生效的時間;
(選用) endTime
。
觸發事件屬性如下 (所有時間均以世界標準時間為準):
屬性 | 說明 |
---|---|
cronExpression |
用來為觸發條件建立執行時間表的 Cron 運算式,例如:「上午 8:00。
"每週一到週五"或「上午 1:30。每月最後一個星期五」。詳情請見
詳情請參閱建構 Cron 運算式。
指定這項屬性即可將觸發條件定義為 Cron 觸發條件。 注意:如果同時含有 |
enabled |
用於指出觸發條件是否已啟用執行的標記。該值可以是下列其中一個
包括:
|
endTime |
觸發條件的時間表失效時,以 Epoch 時間格式表示的時間。 |
group |
執行觸發條件的伺服器類型。舉例來說,如果觸發條件是
值應設為
management-server 。如果系統應在訊息中執行觸發事件
處理伺服器,這個值應設為 message-processor 。 |
id |
觸發條件的編號。 |
jobId |
為要執行的工作識別。 |
name |
用來識別觸發條件的專屬名稱。 |
priority |
如果有多個觸發條件已排定執行,則觸發條件的相對執行優先順序
應用程式值越小,優先順序就越高。舉例來說,如果兩個觸發事件
如果其中一個觸發條件的優先順序為 1,系統則會排定
優先順序為 2 的觸發事件會先執行。
只有當多個觸發條件執行完全相同時,系統才會套用這項屬性 讓應用程式從可以最快做出回應的位置 回應使用者要求 |
startTime |
僅適用於簡易觸發條件。
觸發條件排程生效的時間,以 Epoch 紀元格式表示。 注意:如果
|
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 W |
m |
月 | 是 | 1 至 12 或 1 月 12 日 | , - * / |
dw |
星期幾 | 是 | 1-7 或 SUN-SAT | , - * ?/ L # |
y |
年 | 否 | Empty 或 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: 月欄位代表當月最後一天,也就是 1 月的第 31 天或第 28 天 2 月 (非閏年)。在星期幾欄位中,L 代表一週的最後一天 也就是 7 或 SAT但如果在星期幾欄位使用其他值之後,則代表 當月最後 xxx 天。例如,6L 代表當月的最後一個星期五。 |
三 | 用於指定最接近指定日期的平日 (星期一至星期五)。舉例來說 在月日欄位中指定 15W,表示最接近規則的 15 日是星期幾 每月。也就是說,如果 15 日是星期六,觸發條件就會在 14 日星期五執行。如果 第 15 號是星期日,觸發條件會在 16 日星期一執行。如果 15 日是星期二 那麼系統會在 15 日星期二執行不過,如果指定 1W 代表月日 第 1 個是星期六,而觸發條件會在第 3 日星期一執行,因為系統不會 「跳躍」每月邊界只有在出現於 日期是一天,而非日期範圍或日期清單。 |
# | 用於指定當月的第 n 個 XXX 天。例如,假設 週欄位代表當月的第三個星期五 (第 6 天 = 星期五,而 #3 = 第 3 個 )。其他範例:2#1 = 當月的第一個星期一,4#5 = 5 日 每月星期三。 |
以下列舉幾個 Cron 運算式的範例 (所有時間都以世界標準時間為準):
Cron 運算式 | 執行排程 |
---|---|
0 0 12 * * ? | 中午 12 點(中午)。 |
0 15 10 * * ?2013 | 上午 10:15就會 2013 年達成目標 |
0 10,44 14?3 週三 | 下午 2:10下午 2:44每個月的每週三。 |
0 15 10?* 2013 年 6L 至 2015 年 | 上午 10:152013 年、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 }, ... ]
也可以向
/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 點執行更新工作。世界標準時間:
$ 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 資料。