Cloud Tasks 總覽

本頁面提供 Cloud Tasks 工作和佇列的說明、使用時機及使用方式。Cloud Tasks 可讓應用程式在使用者要求之外,以非同步方式來執行開發人員定義的作業,稱為「工作」

來源程式碼會將工作新增到「佇列」來卸載工作;這些佇列雖然是由開發人員建立,但是由 Cloud Tasks 服務代管。這些工作之後也會在背景中由開發人員提供的工作站進行處理。使用者延遲時間費用、伺服器當機、資源用量限制及重試管理等複雜的工作執行管理作業,將由服務負責處理。

工作本身會包含唯一名稱與設定資訊,並可能包含來自初始要求的任何資料 (稱為酬載),要有這些資料才能處理要求。由於酬載是透過要求本文傳送,包含酬載的工作必須使用 POST 或 PUT 做為 HTTP 方法。

App Engine 標準第一代執行階段的使用者應透過 App Engine Standard SDK 存取 Cloud Tasks 服務。如要進一步瞭解如何使用這個方法,請參閱這裡。App Engine 標準第二代執行階段的使用者,以及 App Engine 標準以外 (包括 App Engine 彈性環境) 的使用者,現在都可使用 Cloud Tasks API。

如要使用 Cloud Tasks API 存取 Cloud Tasks 服務,您的專案必須包含位於特定地區App Engine 應用程式,目前有:這個位置將做為您的 Cloud Tasks 要求的 LOCATION_ID 參數,因此請記下這個資訊。請注意,在 App Engine 指令中稱為 europe-westus-central 的兩個位置,在 Cloud Tasks 指令中則分別稱為 europe-west1us-central1。應用程式可做為開發人員建立的任何佇列的所在位置。基礎的 Cloud Tasks 服務本身也是在相同位置執行。

用途

一般用途包括:

  • 將可能緩慢執行的背景作業 (例如將資料庫更新到工作站) 委派出去,加快使用者的回應時間
  • 在發生非預期的實際工作環境事件時保留要求
  • 從主要的使用者流程中移除非使用者端工作,以利尖峰時段的流量順利傳輸

App Engine 佇列

在 App Engine 佇列中,Cloud Tasks 服務會根據工作設定方式 (在少數情況下是根據佇列本身) 將工作要求轉送到工作站。App Engine 佇列會以穩定的頻率來分派要求 (這個頻率可供設定)。如此將可確保工作穩定執行:當工作成功完成時,所有工作站都會根據服務的執行個體資源調度類型,在期限前傳送 HTTP 回應碼 (200 到 299) 到 Cloud Tasks 服務:自動調整資源配置為 10 分鐘,手動調整資源配置可達 24 小時。如果傳送的是其他回應,或沒有回應,則表示在重試工作。

App Engine 佇列

Cloud Tasks 服務本身會執行大部分的工作程序管理作業,根據流量多寡調整工作站數量,並在工作完成後刪除工作。為執行這個作業,App Engine 佇列的工作站必須是 App Engine 應用程式的一部分。

工作流程

一般工作流程如下所示:

  1. 建立工作站來處理工作。
  2. 建立佇列。
  3. 透過程式建立工作,並將工作加入佇列。
  4. Cloud Tasks 服務將確認訊息傳回給來源應用程式,表示工作已成功寫入 Cloud Task 儲存空間,讓建立工作要求具有高可用性和持久性。
  5. 將工作傳送到工作站。
  6. 工作站處理工作。
  7. 為完成程序,App Engine 工作站會將 2xx 的成功狀態碼傳回給 Cloud Tasks 服務,同時刪除工作。

工作提交到佇列後,初始要求就無法再使用任何資料。

詞彙

下表提供說明 Cloud Tasks 行為的主要詞彙。

詞彙 定義
佇列 具有相同目標類型的一系列工作,由單一設定管理,通常以目標類型表示 (例如 App Engine 佇列)。
目標類型 工作的處理位置與方式。
工作站 處理工作的服務。
嘗試 執行工作的嘗試。
嘗試分派 當 Cloud Tasks 將工作傳送到目標時。
嘗試回應 由工作站發出的回應,表示與工作相關聯的作業已成功完成或失敗。
重試 第二、第三或第四次等執行工作的嘗試。重試次數是透過 RetryConfig 加以設定。
頻率限制 佇列的頻率限制。

指標

透過 Stackdriver 可使用下列預先定義的 Cloud Task 指標。

指標類型
顯示名稱
種類;類型;單位
說明
標籤
api/request_count
API 要求
DELTAINT641
Cloud Tasks API 呼叫數。
api_method:呼叫的 API 方法 (例如 CreateTask)。
response_code:字串形式的標準回應碼 (例如「ok」)。
queue/task_attempt_count
工作嘗試數
DELTAINT641
依回應碼歸類的工作嘗試數。
response_code:字串形式的標準回應碼 (例如「ok」)。
queue/task_attempt_delays
工作嘗試延遲
DELTADISTRIBUTIONms
排定嘗試時間與實際嘗試時間之間的延遲時間。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Tasks 說明文件