タスクの再試行パラメータを設定する

タスクを作成するときに、失敗したタスクを再試行する最大回数を指定し、再試行の試行回数の時間制限を設定し、試行の間隔を制御できます。projects.locations.queues.tasks.createタスクが正常に実行されると、キューから削除されます。いずれの場合も、タスクの最大保持期間の制限が適用されます。

このタスクレベルの再試行構成は、 キューレベルの再試行構成を オーバーライドします。

タスクの作成時に再試行を構成する

次の例では、Cloud Tasks API に直接リクエストを送信して HTTP ターゲット タスクを作成するときに、再試行パラメータを設定する方法を示します。App Engine タスクを作成するときに、同じ再試行パラメータを 使用できます 。パラメータの詳細については、 RetryConfig 設定Task リソースをご覧ください。

リクエスト データを使用する前に、 次のように置き換えます:

  • PROJECT_ID: 必須。タスクが作成される プロジェクトのプロジェクト ID。 Google Cloud
  • 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に設定します。 に達した場合、または -1 に設定した場合でも、MAX_RETRY_DURATION は適用されます。MAX_ATTEMPTS
  • MAX_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_INTERVAL10sMAX_INTERVAL300sMAX_DOUBLINGS3 の場合、再試行間隔は 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"
}

次のステップ