建立工作時,您可以使用 projects.locations.queues.tasks.create 方法指定失敗工作的重試次數上限、設定重試的時間限制,以及控制每次重試的時間間隔。工作執行成功後,就會從佇列中移除。在所有情況下,工作保留期限上限也適用。
這項工作層級的重試設定會覆寫工作佇列層級的重試設定。
建立工作時設定重試次數
下列範例說明如何直接向 Cloud Tasks API 傳送要求,在建立 HTTP 目標工作時設定重試參數。建立 App Engine 工作時,您可以使用相同的重試參數。如要進一步瞭解參數,請參閱 Task 資源的 RetryConfig 設定。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:必填。要建立工作的 Google Cloud 專案的專案 ID。REGION:必填。佇列部署的區域,例如us-central1。QUEUE_ID:必填。要將工作加入的佇列 ID。URL:必填。要求傳送至的完整網址。這個字串的開頭必須是http://或https://,例如:https://www.example.com。SERVICE_ACCOUNT_EMAIL: 選用。用於產生授權權杖的服務帳戶電子郵件地址,該權杖會在執行工作時,一併傳送至目標。服務帳戶必須與佇列位於相同專案。呼叫者必須擁有服務帳戶的iam.serviceAccounts.actAs權限。如要產生 OAuth2 存取權杖,而非 OpenID Connect 權杖,請將
oidcToken欄位替換為oauthToken,指定服務帳戶電子郵件地址。MAX_ATTEMPTS:選用。工作嘗試次數上限 (包括第一次)。如要允許無限次重試,請將此值設為-1。MAX_RETRY_DURATION,即使達到MAX_ATTEMPTS或設為-1,仍適用這項規定。MAX_RETRY_DURATION:選用。 重試失敗工作的時間上限,從首次嘗試執行工作時起算。值必須是以「s」結尾的字串,例如5s。如要指定無限期,請將此值設為0s。MAX_ATTEMPTS仍適用,即使達到MAX_RETRY_DURATION或設為0s也是如此。MIN_INTERVAL:選用。重試之間須至少等待多長時間。值必須是結尾為「s」的字串,例如5s。MAX_INTERVAL:選用。重試之間等待時間上限。值必須是結尾為「s」的字串,例如5s。MAX_DOUBLINGS:選用。失敗工作重試間隔時間加倍遞增到常數之前,要將間隔時間加倍的次數上限。工作重試間隔從MIN_INTERVAL開始,然後以雙倍增加MAX_DOUBLINGS次,接著以線性方式增加,最後則按MAX_INTERVAL的間隔重試,直到MAX_ATTEMPTS次為止。舉例來說,如果
MIN_INTERVAL為10s、MAX_INTERVAL為300s,且MAX_DOUBLINGS為3,重試間隔會加倍3次,以 2^3 * 10 秒的間隔線性增加,然後以MAX_INTERVAL的間隔重試,直到工作嘗試次數達到MAX_ATTEMPTS次為止:10 秒、20 秒、40 秒、80 秒、160 秒、240 秒、300 秒、300 秒,依此類推。SCHEDULE_TIME:選用。 預計嘗試執行工作時間,採用 RFC 3339 格式,例如2026-10-02T15:01:23Z。如果未設定時間或設定的時間早於目前時間,Cloud Tasks 會將時間設為目前時間。
JSON 要求內文:
{
"task": {
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
}
},
"retryConfig": {
"maxAttempts": MAX_ATTEMPTS,
"maxRetryDuration": "MAX_RETRY_DURATION",
"minBackoff": "MIN_INTERVAL",
"maxBackoff": "MAX_INTERVAL",
"maxDoublings": MAX_DOUBLINGS
},
"scheduleTime": "SCHEDULE_TIME"
}
}
請展開以下其中一個選項,以傳送要求:
如果成功,回應主體會包含新建立的 Task 資源例項。
{
"name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"headers": {
"User-Agent": "Google-Cloud-Tasks"
},
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
"audience": "URL"
}
},
"retryConfig": {
"maxAttempts": MAX_ATTEMPTS,
"maxRetryDuration": "MAX_RETRY_DURATION",
"minBackoff": "MIN_INTERVAL",
"maxBackoff": "MAX_INTERVAL",
"maxDoublings": MAX_DOUBLINGS
},
"scheduleTime": "SCHEDULE_TIME",
"createTime": "2026-04-30T19:11:50Z",
"dispatchDeadline": "600s",
"view": "BASIC"
}