タスクを作成するときに、失敗したタスクを再試行する最大回数を指定し、再試行の試行回数の時間制限を設定し、試行の間隔を制御できます。projects.locations.queues.tasks.createタスクが正常に実行されると、キューから削除されます。いずれの場合も、タスクの最大保持期間の制限が適用されます。
このタスクレベルの再試行構成は、 キューレベルの再試行構成を オーバーライドします。
タスクの作成時に再試行を構成する
次の例では、Cloud Tasks API に直接リクエストを送信して HTTP ターゲット タスクを作成するときに、再試行パラメータを設定する方法を示します。App Engine タスクを作成するときに、同じ再試行パラメータを
使用できます
。パラメータの詳細については、
RetryConfig 設定 の
Task リソースをご覧ください。
リクエスト データを使用する前に、 次のように置き換えます:
PROJECT_ID: 必須。タスクが作成される プロジェクトのプロジェクト ID。 Google CloudREGION: 必須。キューがデプロイされるリージョン(us-central1など)。QUEUE_ID: 必須。タスクが追加されるキューの ID 。URL: 必須。リクエストの送信先となる完全修飾された URL。この文字列はhttp://またはhttps://で始まる必要があります(例:https://www.example.com)。SERVICE_ACCOUNT_EMAIL: 省略可。タスクの実行時にターゲットに送信されるリクエストに含まれる認証トークンの生成に使用されるサービス アカウントのメールアドレス。サービス アカウントは、キューと同じプロジェクトに存在する必要があります。呼び出し元には、サービス アカウントに対するiam.serviceAccounts.actAs権限が必要です。OpenID Connect トークンの代わりに OAuth2 アクセス トークンを生成するには、
oidcTokenフィールドをoauthTokenに置き換えて、サービス アカウントのメールアドレスを指定します。MAX_ATTEMPTS: 省略可。最初の試行を含む、タスクの最大 試行回数。再試行を無制限に許可するには、これを-1に設定します。 に達した場合、または-1に設定した場合でも、MAX_RETRY_DURATIONは適用されます。MAX_ATTEMPTSMAX_RETRY_DURATION: 省略可。 失敗したタスクを再試行する最大時間(タスクの最初の 試行時から測定)。値は「s」で終わる文字列にする必要があります(5sなど)。期間を無制限にするには、 これ0sに設定します。MAX_RETRY_DURATIONに達した場合、または0sに設定した場合でも、MAX_ATTEMPTSは適用されます。MIN_INTERVAL: 省略可。再試行の間隔の最小時間 。値は「s」で終わる文字列にする必要があります(5sなど)。MAX_INTERVAL: 省略可。再試行の間隔の最大時間 。値は「s」で終わる文字列にする必要があります(5sなど)。MAX_DOUBLINGS: 省略可。失敗したタスクの再試行の間隔が、増加が一定になる前に 2 倍になる最大回数。タスクの再試行間隔はMIN_INTERVALから始まり、MAX_DOUBLINGS回 2 倍になり、その後は直線的に増加します。最終的な再試行間隔はMAX_INTERVALであり、MAX_ATTEMPTS回まで再試行が発生します。たとえば、
MIN_INTERVALが10s、MAX_INTERVALが300s、MAX_DOUBLINGSが3の場合、再試行間隔は3回 2 倍になり、2^3 * 10 秒ずつ直線的に増加します。その後、タスクがMAX_ATTEMPTS回試行されるまで、MAX_INTERVAL間隔で再試行されます(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"
}