本頁面說明如何建立 Cloud Tasks 工作佇列。工作新增至佇列後,佇列會調度工作,並確保工作由服務 (也稱為「worker」) 可靠地處理。
注意事項:
佇列名稱由三個部分組成:專案 ID、位置和佇列 ID。您必須擁有Google Cloud 專案,才能取得專案 ID。
如果您使用的是 App Engine 目標工作,則必須擁有位於特定區域的 App Engine 應用程式,也就是佇列和處理常式執行的位置。新增應用程式時,請留意區域。
使用 HTTP 目標任務時,不需要 App Engine 應用程式。建立佇列時,請選取 Google Cloud 位置。
建立佇列
您可以透過下列方式建立佇列:
- 在 Google Cloud 控制台中
- 在終端機或 Cloud Shell 中使用 Google Cloud CLI
- 直接向 Cloud Tasks API 傳送要求
控制台
gcloud
使用 gcloud tasks queues create 指令建立佇列:
gcloud tasks queues create QUEUE_ID \
--location=LOCATION更改下列內容:
QUEUE_ID:您指派給佇列的 ID,例如my-queue。LOCATION:支援的區域,佇列會在此執行,例如asia-south1。如果貴組織限制資源位置,且您想在
us-central1或us-central2建立佇列,組織政策必須允許在us-central1和us-central2建立佇列 (即使您只需要在其中一個區域建立佇列)。
gcloud CLI 指令的其他旗標可讓您設定頻率限制、重試選項、佇列類型等。
REST API
如要建立佇列,請使用 projects.locations.queues.create 方法。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:您的 Google Cloud 專案 ID。LOCATION:執行佇列的支援區域,例如asia-south1。如果貴組織限制資源位置,而您想在
us-central1或us-central2建立佇列,組織政策必須允許在us-central1和us-central2建立佇列 (即使您只需要在其中一個區域建立佇列)。QUEUE_ID:您指派給佇列的 ID,例如my-queue。
Queue 資源的其他可設定屬性包括頻率限制、重試選項、佇列類型等。
JSON 要求內文:
{
"name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID"
}
請展開以下其中一個選項,以傳送要求:
如果成功,回應主體會包含新建立的 Queue 執行個體:
{
"name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
"rateLimits": {
"maxDispatchesPerSecond": 500,
"maxBurstSize": 100,
"maxConcurrentDispatches": 1000
},
"retryConfig": {
"maxAttempts": 100,
"minBackoff": "0.100s",
"maxBackoff": "3600s",
"maxDoublings": 16
},
"state": "RUNNING"
}
新建立的佇列可能需要幾分鐘才能使用。
描述佇列
您可以透過下列方式,確認佇列是否已成功建立:
- 在 Google Cloud 控制台中
- 在終端機或 Cloud Shell 中使用 gcloud CLI
直接向 Cloud Tasks API 傳送要求
控制台
在 Google Cloud 控制台,依序前往「Cloud Tasks」>「Queues」(佇列) 頁面。
綠色勾號 表示佇列正在執行。
如要查看更多詳細資料,請按一下佇列名稱,然後按一下「Configuration」(設定) 分頁標籤。
gcloud
使用 gcloud tasks queues describe 指令,確認佇列已成功建立:
gcloud tasks queues describe QUEUE_ID \
--location=LOCATION更改下列內容:
QUEUE_ID:佇列 ID (簡稱)LOCATION:佇列的位置
畫面會顯示如下的輸出內容:
name: projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID rateLimits: maxBurstSize: 100 maxConcurrentDispatches: 1000 maxDispatchesPerSecond: 500.0 retryConfig: maxAttempts: 100 maxBackoff: 3600s maxDoublings: 16 minBackoff: 0.100s state: RUNNING
REST API
如要擷取佇列,請使用 projects.locations.queues.get 方法。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:您的 Google Cloud 專案 ID。LOCATION:部署佇列的區域,例如us-central1。QUEUE_ID:佇列的簡短 ID,例如my-queue。
請展開以下其中一個選項,以傳送要求:
如果成功,回應主體會包含 Queue 的執行個體:
{
"name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
"rateLimits": {
"maxDispatchesPerSecond": 500,
"maxBurstSize": 100,
"maxConcurrentDispatches": 1000
},
"retryConfig": {
"maxAttempts": 100,
"minBackoff": "0.100s",
"maxBackoff": "3600s",
"maxDoublings": 16
},
"state": "RUNNING"
}
排解建立佇列的問題
如果未看到預期的輸出內容,可以嘗試下列做法:
- 等待至少一分鐘的時間,讓佇列完成初始化。
確認尚未存在相同 ID 的佇列。您可以使用
gcloud tasks queues list指令,查看專案中的佇列:gcloud tasks queues list \ --location=LOCATION如要搜尋多個地點,則須提出多項要求。
檢查是否已達佇列配額:
在 Google Cloud 控制台中,前往 Cloud Tasks API 的「API/Service Details」(API/服務詳細資料) 頁面。
按一下「配額與系統限制」分頁標籤。
如要提高配額,請在配額列中依序按一下省略符號圖示 >「Edit quota」(編輯配額)。
詳情請參閱「要求調整配額」。
重新執行指令來建立佇列,並確保每個步驟都正確完成。