排定營利工作

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

排程工作總覽

營利服務提供工作排程器和一組預先排定執行時間的工作 指定時間。

下表列出營利政策提供的預先排定工作/工作時間 排定執行時間 (所有時間均以世界標準時間為準)。此外,清單中也列出各項工作的觸發條件。

工作 說明 排程 (世界標準時間) 觸發條件
每月開發人員稅率 從每位開發人員的稅務引擎中擷取稅率,並更新開發人員 採用修訂版稅率的實體。 每個月的第一天,上午 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 套件。 會在工作啟用當天下午 9 點執行一次。

注意:無論您是否接收通知,系統都只會傳送通知一次 設定 cronExpression,讓工作執行多次 次。

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
新臨時通知 向所有開發人員傳送通知,說明新的 API 產品在特定 以及地理區域市場 會在工作啟用當天下午 9 點執行一次。

注意:無論您是否接收通知,系統都只會傳送通知一次 設定 cronExpression,讓工作執行多次 次。

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
新產品通知 傳送通知給所有開發人員,說明有新的 API 產品可用。 會在工作啟用當天下午 9 點執行一次。

注意:無論您是否接收通知,系統都只會傳送通知一次 設定 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:00 MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
費率方案即將到期 事先通知受影響的開發人員,說明費率方案 即將到期的 Pod 會在費率方案到期前 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 運算式,例如:「上午 8:00。 "每週一到週五"或「上午 1:30。每月最後一個星期五」。詳情請見 詳情請參閱建構 Cron 運算式

指定這項屬性即可將觸發條件定義為 Cron 觸發條件。

注意:如果同時含有 cronExpression 和 已指定 startTime/endTimecronExpression 優先順序較高。

enabled 用於指出觸發條件是否已啟用執行的標記。該值可以是下列其中一個 包括:
  • true。觸發條件可執行。
  • false。這個觸發條件已停用,將不會執行。
endTime 觸發條件的時間表失效時,以 Epoch 時間格式表示的時間。
group 執行觸發條件的伺服器類型。舉例來說,如果觸發條件是 值應設為 management-server。如果系統應在訊息中執行觸發事件 處理伺服器,這個值應設為 message-processor
id 觸發條件的編號。
jobId 為要執行的工作識別。
name 用來識別觸發條件的專屬名稱。
priority 如果有多個觸發條件已排定執行,則觸發條件的相對執行優先順序 應用程式值越小,優先順序就越高。舉例來說,如果兩個觸發事件 如果其中一個觸發條件的優先順序為 1,系統則會排定 優先順序為 2 的觸發事件會先執行。

只有當多個觸發條件執行完全相同時,系統才會套用這項屬性 讓應用程式從可以最快做出回應的位置 回應使用者要求

startTime 僅適用於簡易觸發條件。

觸發條件排程生效的時間,以 Epoch 紀元格式表示。

注意:如果 cronExpressionstartTime/endTime 都 則以 cronExpression 為優先。

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 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 運算式值的工作,您可以變更其他屬性 例如 startTimepriority

如要更新已排定的工作,請向 /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 資料