キューとタスクの管理

Cloud Tasks を使用すると、非同期ワークロードの実行を制御し、キュー処理を一時停止して、アクティブなタスクフローのトラブルシューティングを行うことができます。キューとタスクの構成とメンテナンスは、 Google Cloud コンソール、Google Cloud CLI、または Cloud Tasks API を使用して行います。

始める前に

  1. 既存の Cloud Tasks キューがあることを確認します。詳細については、Cloud Tasks キューを作成するをご覧ください。
  2. キューとタスクを管理するために必要な Identity and Access Management(IAM)ロール(Cloud Tasks 管理者(roles/cloudtasks.admin)、Cloud Tasks キュー管理者(roles/cloudtasks.queueAdmin)、Cloud Tasks タスク削除者(roles/cloudtasks.taskDeleter)など)があることを確認します。

キューからタスクを削除する

スケジュール設定済みまたはディスパッチ済みのタスクは削除できます。たとえば、何回再試行しても正常に完了できないタスクの削除が必要になることがあります。タスクが正常に完了した場合、または失敗が続いて再試行回数が上限に達した場合は、タスクを削除できません。タスクの最大保持期間の上限に達すると、タスクは自動的に削除されます。

コンソール

  1. Google Cloud コンソールで、[Cloud Tasks] > [キュー] ページに移動します。

    [キュー] に移動

  2. 削除するタスクのキューの名前をクリックします。

  3. 削除するタスクのチェックボックスをオンにします。

  4. [タスクを削除] をクリックします。

  5. [削除] をクリックして確定します。

gcloud

gcloud tasks delete コマンドを使用してタスクを削除します。

gcloud tasks delete TASK_NAME \
    --queue=QUEUE_ID \
    --location=LOCATION

次のように置き換えます。

  • TASK_NAME: 削除するタスクの ID または完全なリソース名
  • QUEUE_ID: タスクが属するキューの名前
  • LOCATION: キューがデプロイされているリージョン(例: us-central1)

REST

タスクを削除するには、projects.locations.queues.tasks.delete メソッドを使用します。

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

  • QUEUE_ID: タスクが属するキューの名前
  • TASK_NAME: 削除するタスクの名前
  • PROJECT_ID: 実際の Google Cloudプロジェクト ID
  • LOCATION: キューが存在するリージョン(例: us-central1)

リクエストの本文は空にする必要があります。

リクエストを送信するには、次のいずれかのオプションを展開します。

成功すると、レスポンス本文は空になります。

キューからタスクのバッチを削除する

キューからタスクのバッチを削除するには、projects.locations.queues.tasks.batchDelete メソッドを使用してタスク名のリストを削除します。

次の点にご注意ください。

  • すべてのタスクは同じキューから削除する必要があります。

  • 1 つのバッチで削除できるタスクの数には上限があります。詳細については、割り当てと上限をご覧ください。

  • 個々のオペレーションを 1 つのリクエストに集約するバッチ リクエストは、バッチ内の一部のオペレーションが成功し、他のオペレーションが失敗する可能性があるため、アトミックではありません。

  • タスクを削除できるのは、タスクがスケジュール設定されているか、ディスパッチされている場合のみです。タスクが正常に完了した場合や、失敗が続いて再試行回数が上限に達した場合は、タスクを削除できません。タスクの最大保持期間の上限に達すると、タスクは自動的に削除されます。

  • タスクのバッチを作成することもできます。詳細については、タスクのバッチを作成するをご覧ください。

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

  • TASK_NAME: 削除するタスクの名前。形式は projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID です。
  • PROJECT_ID: 実際の Google Cloudプロジェクト ID
  • REGION: キューが存在するリージョン(例: us-central1)
  • QUEUE_ID: タスクが属するキューの名前

リクエスト本文には、タスク名のリストが含まれています。

リクエストの本文(JSON):

{
  "names": [
    "TASK_NAME"
  ]
}

リクエストを送信するには、次のいずれかのオプションを展開します。

成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。

{
  "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.tasks.v2.BatchDeleteTasksMetadata"
  },
  "done": false
}

キューからすべてのタスクをパージする

キューからすべてのタスクを削除するには、タスクをパージします。パージ呼び出しの前に作成されたすべてのタスクが完全に削除されます。ただし、パージ オペレーションが有効になるまでに最大 1 分かかることがあり、パージが有効になる前にタスクがディスパッチされることがあります。

コンソール

  1. Google Cloud コンソールで、[Cloud Tasks] > [キュー] ページに移動します。

    [キュー] に移動

  2. 削除するタスクのキューの名前をクリックします。

  3. [キューを消去] をクリックします。

  4. プロンプトで [パージ] をクリックします。

gcloud

gcloud tasks queues purge コマンドを使用してキューをパージします。

gcloud tasks queues purge QUEUE_ID \
    --location=LOCATION

次のように置き換えます。

  • QUEUE_ID: パージするキューの名前
  • LOCATION: キューがデプロイされているリージョン(例: us-central1)

REST

キューをパージするには、projects.locations.queues.purge メソッドを使用します。

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

  • QUEUE_ID: パージするキューの名前
  • PROJECT_ID: 実際の Google Cloudプロジェクト ID
  • LOCATION: キューがデプロイされているリージョン(例: us-central1)

リクエストの本文は空にする必要があります。

リクエストを送信するには、次のいずれかのオプションを展開します。

成功した場合、レスポンスの本文には 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",
  "purgeTime": "2025-03-28T13:06:30.110255Z"
}

キューを一時停止または再開する

キューを一時停止または再開できます。キューを一時停止すると、タスクの実行と配信が停止します。タスクを作成してキューに push または追加することはできますが、キューが再開されるまでタスクは処理されません。キューを再開すると、Cloud Tasks は、定義された実行順序なしでバックログされたタスクのディスパッチを開始します。バックログが大きい高トラフィック キューを再開する場合は、ターゲットの過負荷を防ぐために、ランプアップ ガイダンスに沿って操作してください。

コンソール

  1. Google Cloud コンソールで、[Cloud Tasks] > [キュー] ページに移動します。

    [キュー] に移動

  2. 一時停止または再開するキューのチェックボックスをオンにします。

  3. キューを一時停止するには、 [キューを一時停止] をクリックし、プロンプトで [一時停止] をクリックします。

  4. 一時停止したキューを再開するには、 [キューを再開] をクリックします。

gcloud

  1. gcloud tasks queues pause コマンドを使用してキューを一時停止します。

    gcloud tasks queues pause QUEUE_ID \
        --location=LOCATION

    次のように置き換えます。

    • QUEUE_ID: 一時停止するキューの名前
    • LOCATION: キューがデプロイされているリージョン(例: us-central1)
  2. gcloud tasks queues resume コマンドを使用してキューを再開します。

    gcloud tasks queues resume QUEUE_ID \
        --location=LOCATION

REST

  1. キューを一時停止するには、projects.locations.queues.pause メソッドを使用します。

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

    • QUEUE_ID: 一時停止するキューの名前
    • PROJECT_ID: 実際の Google Cloudプロジェクト ID
    • LOCATION: キューがデプロイされているリージョン(例: us-central1)

    リクエストの本文は空にする必要があります。

    リクエストを送信するには、次のいずれかのオプションを展開します。

    成功した場合、レスポンスの本文には 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": "PAUSED"
    }
    

  2. キューを再開するには、projects.locations.queues.resume メソッドを使用します。

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

    • QUEUE_ID: 再開するキューの名前
    • PROJECT_ID: 実際の Google Cloudプロジェクト ID
    • LOCATION: キューがデプロイされているリージョン(例: us-central1)

    リクエストの本文は空にする必要があります。

    リクエストを送信するには、次のいずれかのオプションを展開します。

    成功した場合、レスポンスの本文には 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"
    }
    

キューの一覧表示

キューを一覧表示できます。キューを一覧表示すると、レート制限と再試行パラメータの詳細が返されます。次のフィールドは同等です。

  • 最大レート(コンソール)、MAX_RATE(gcloud)、maxDispatchesPerSecond(REST)
  • 最大同時実行数(コンソール)、MAX_NUM_OF_TASKS(gcloud)、maxConcurrentDispatches(REST)

コンソール

  1. Google Cloud コンソールで、[Cloud Tasks] > [キュー] ページに移動します。

    [キュー] に移動

    Google Cloud プロジェクト内のすべてのキューが一覧表示されます。

  2. 詳細を表示するには、キューの名前をクリックし、[構成] タブをクリックします。

    レート制限と再試行パラメータの詳細が表示されます。

gcloud

gcloud tasks queues list コマンドを使用してキューを一覧表示します。

gcloud tasks queues list \
    --location=LOCATION

LOCATION は、キューがデプロイされているリージョン(us-central1 など)に置き換えます。ロケーションが指定されていない場合、 Google Cloud プロジェクトの App Engine アプリのロケーションが使用されます(存在する場合)。それ以外の場合は、ロケーションを指定する必要があります。

出力例を以下に示します。

QUEUE_NAME: my-queue
STATE: PAUSED
MAX_NUM_OF_TASKS: 1000
MAX_RATE (/sec): 500.0
MAX_ATTEMPTS: 100
...

REST

キューを一覧表示するには、projects.locations.queues.list メソッドを使用します。

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

  • PROJECT_ID: 実際の Google Cloudプロジェクト ID。
  • LOCATION: キューが作成されるリージョン(例: us-central1)。

リクエストを送信するには、次のいずれかのオプションを展開します。

成功した場合、レスポンスの本文には Queue リソースのインスタンスが含まれ、レスポンスは次のようになります。

{
  "queues": [
    {
      "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": "PAUSED",
      "purgeTime": "2025-03-28T13:37:32.292552Z"
    },
    ...
  ],
  "nextPageToken": "CjQKCHppcHBlcjIAEgwI9-GExAYQ_oDc1AMaGioLeWlrZXMtYWdhaW4yC3VzLWNlbnRyYWwx"
}

キューを削除する

App Engine default キューを除き、不要になったキューは削除できます。キューを削除した後に同じ名前で再び作成する場合は、その前に 3 日間待つ必要があります。この待機期間は、 Google Cloud コンソール、gcloud CLI、REST API、RPC API、Terraform などのインターフェースを介して削除されたキューに適用されます。これにより、削除時に実行されているタスクの予期しない動作を防ぎ、削除と再作成のサイクル中の内部プロセス障害を回避できます。

この最大 3 日間の廃棄期間中に、キュー作成リクエストがキューを再作成せずに成功したように見えることがあります。同じ名前のキューが再作成されたことを確認するには、gcloud tasks queues describe コマンドまたは projects.locations.queues.get メソッドを使用してキューを取得します。成功(200 OK)レスポンスは、キューが再作成されたことを確認します。

キューを失うことなく、また 3 日間の待機期間をトリガーすることなく、タスクをクリアする、キュー構成を変更する、CI / CD パイプラインでキューを管理するには、キューを削除して再作成する代わりに、次の方法を使用します。

キューを削除するには、 Google Cloud コンソール、gcloud CLI、または Cloud Tasks API を使用します。

コンソール

  1. Google Cloud コンソールで、[Cloud Tasks] > [キュー] ページに移動します。

    [キュー] に移動

  2. 削除するキューのチェックボックスをオンにします。

  3. [ キューを削除] をクリックします。

  4. プロンプトでキュー名を入力し、[確認] をクリックします。

gcloud

gcloud tasks queues delete コマンドを使用してキューを削除します。

gcloud tasks queues delete QUEUE_ID \
    --location=LOCATION

次のように置き換えます。

  • QUEUE_ID: 削除するキューの ID または完全修飾識別子
  • LOCATION: キューがデプロイされているリージョン(例: us-central1)

--quiet フラグを渡さない限り、gcloud CLI はキューを削除する前に確認を求めます。

REST

キューを削除するには、projects.locations.queues.delete メソッドを使用します。

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

  • QUEUE_ID: 削除するキューの名前
  • PROJECT_ID: 実際の Google Cloudプロジェクト ID
  • LOCATION: キューがデプロイされているリージョン(例: us-central1)

リクエストの本文は空にする必要があります。

リクエストを送信するには、次のいずれかのオプションを展開します。

成功すると、レスポンス本文は空になります。

次のステップ