您可以使用 Cloud Scheduler 來設定工作的排程單元,在定義的時間或以規律的間隔執行工作。這類工作單元通常稱為「Cron 工作」。常見用途包括每天透過電子郵件傳送報表、每 10 分鐘更新快取資料,或每小時更新摘要資訊。
Cloud Scheduler 建立的每個 Cron 工作都會按照指定排程傳送至「目標」,由目標完成工作。目標必須屬於下列其中一種類型:
- HTTP/S 端點
- Pub/Sub 主題
- App Engine HTTP/S 應用程式
Cloud Scheduler 旨在提供至少一次傳送,也就是說,工作在每次排定的執行作業中至少會執行一次。在極少數情況下,工作可能會與單一排程執行個體建立關聯並執行多次,因此程式碼必須確保重複執行不會產生有害的副作用。目標應具備冪等性。
您可以使用 Cloud 控制台或 gcloud 指令列工具建立 Cron 工作。
各目標支援的地區
如果目標是 HTTP/S 端點或 Pub/Sub 主題,Cloud Scheduler 適用於 Cloud Scheduler 所有支援的 Google Cloud 區域。
如果目標是位於目前專案中的 App Engine 應用程式:
以 App Engine 為目標的 Cloud Scheduler 工作,只能在專案的 App Engine 區域中建立。
一個 Google Cloud 專案只能包含一個 App Engine 應用程式,且應用程式建立後,所在區域即無法變更。
App Engine 具有「區域性」,這表示執行您應用程式的基礎架構位於特定區域。如要將運算和工作分散到多個區域,請改為指定 HTTP/S 端點或 Pub/Sub 主題。
如果您不使用 App Engine 做為目標,則不需要部署 App Engine 應用程式,也可以停用任何現有的 App Engine 應用程式。
工作重試政策
如果 Cloud Scheduler 工作未順利完成,且未收到工作處理常式的確認訊息,系統會根據設定的重試政策,以指數輪詢方式重試。
您可以調整設定,決定重試行為。詳情請參閱「重試工作」。
簡化工作要求
Cloud Scheduler 至少會傳送一次。如果目標回應時間超過工作嘗試期限 (attemptDeadline),或暫時性網路中斷導致 Cloud Scheduler 無法收到 HTTP 2xx 確認,則可能會發生相同排程執行的重複工作要求。
如要讓工作處理常式具備冪等性,並簡化重試的要求,您可以使用 Cloud Scheduler 在要求中加入的 X-CloudScheduler-JobName 和 X-CloudScheduler-ScheduleTime HTTP 標頭。詳情請參閱「簡化工作要求」。