タスクの作成時に、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: 必須。リクエストの送信先となる完全修飾された URL。この文字列はhttp://またはhttps://のいずれかで始まる必要があります(例:https://www.example.com)。SERVICE_ACCOUNT_EMAIL: 省略可。タスクの実行時にターゲットに送信されるリクエストに含まれる認証トークンの生成に使用されるサービス アカウントのメールアドレス。サービス アカウントは、キューと同じプロジェクトに存在する必要があります。呼び出し元には、サービス アカウントに対するiam.serviceAccounts.actAs権限が必要です。OpenID Connect トークンの代わりに OAuth2 アクセス トークンを生成するには、
oidcTokenフィールドをoauthTokenに置き換えて、サービス アカウントのメールアドレスを指定します。MAX_ATTEMPTS: 省略可。タスクの試行の最大回数(初回を含む)。再試行を無制限に許可するには、これを-1に設定します。MAX_ATTEMPTSに達した場合や-1に設定されている場合でも、MAX_RETRY_DURATIONは適用されます。MAX_RETRY_DURATION: 省略可。 失敗したタスクを再試行する最大時間。タスクが最初に試行された時点から測定されます。値は「s」で終わる文字列でなければなりません(5sなど)。無制限の期間を指定するには、これを0sに設定します。MAX_RETRY_DURATIONに達した場合や0sに設定されている場合でも、MAX_ATTEMPTSは適用されます。MIN_INTERVAL: 省略可。再試行の間に待機する最小時間。値は「s」で終わる文字列でなければなりません(5sなど)。MAX_INTERVAL: 省略可。再試行の間に待機する最大時間。値は「s」で終わる文字列でなければなりません(5sなど)。MAX_DOUBLINGS: 省略可。失敗したタスクの再試行間隔が一定になるまでの、間隔が倍増する最大回数。タスクの再試行間隔は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"
}