從工作佇列遷移至 Cloud Tasks

您可以不再繼續透過 App Engine Task Queue API 使用 App Engine 標準環境的佇列服務 (工作佇列),改為使用 Cloud Tasks 這個新的 RPC/REST API 來存取相同服務。Cloud Tasks 可以在第一代 App Engine 執行階段以外的環境中使用,特別是 App Engine 彈性環境以及第二代 App Engine 標準環境執行階段

Cloud Tasks 與最新的 App Engine 標準環境工作佇列服務能夠並行使用。您可以透過任一 API 將其新增至相同佇列。無論您是使用 App Engine SDK 或新的 Cloud Tasks API,應用程式內的佇列都會將工作轉送到處理常式 URL 以進行非同步處理。

新功能

Cloud Tasks 提供無法透過 App Engine SDK 取得的部分功能,包括:

  • 透過 API 進行佇列管理:

    您可以使用 API、透過主控台或透過 gcloud 指令建立、刪除、暫停及執行其他佇列管理工作。

  • 列出佇列指令:

    您可以列出已在專案中設定的所有佇列。

  • 列出工作指令:

    您可以列出任何佇列中的所有工作。

  • 整合身分與存取權管理 (IAM):

    您可以使用 IAM,以高度精細的方式安全存取佇列和工作。

  • HTTP 目標

    您可以將處理常式指定至任何具有公開 IP 位址的 HTTP 端點。

目前還無法透過 Cloud Tasks API 取得的工作佇列功能:

  • 提取佇列

    您可以使用 GA 產品 Cloud Pub/Sub 來實作與提取佇列相同的各個使用案例。

  • 交易工作

    Cloud Tasks 不支援將工作排入佇列做為 Cloud Datastore 交易的一部分,因此只有在交易修訂成功時,工作才會排入佇列,也只有在此時,工作才會保證排入佇列。

  • 延遲工作

    在部分情況下,您可能需要以非同步方式處理各種不同的小型工作,但同時又想省去個別設定處理常式的麻煩,此時就可以透過 App Engine SDK 使用特定執行階段專用的程式庫,建立可以用來管理這些工作的簡單函式。Cloud Tasks 並未提供這個功能。但您「可以」使用 Cloud Tasks 將這些一般工作安排於日後執行。

  • 命名空間

    部分使用 App Engine SDK 的執行階段含有可透過命名空間支援工作多租戶架構的 API,不過 Cloud Tasks 並未提供這項功能。

  • 本機模擬器

    gcloud CLI 或 App Engine SDK 提供的本機開發伺服器不支援 Cloud Tasks API 呼叫的模擬端點。

  • 非同步新增工作

    App Engine SDK 使用者可以選擇非同步將工作新增至佇列。Cloud Tasks 並未提供這項功能。

瞭解詳情

如需更詳細的程式碼遷移指南,請參閱 App Engine 工作佇列說明文件集: