Gestire code e attività

Cloud Tasks ti consente di controllare l'esecuzione asincrona dei workload, mettere in pausa l'elaborazione delle code e risolvere i problemi relativi ai flussi di attività attivi. Puoi configurare e gestire le code e le attività utilizzando la console Google Cloud , Google Cloud CLI o l'API Cloud Tasks.

Prima di iniziare

  1. Assicurati di avere una coda di attività Cloud Tasks esistente. Per saperne di più, consulta Crea code di attività di Cloud Tasks.
  2. Assicurati di disporre dei ruoli di Identity and Access Management (IAM) necessari per gestire code di attività e attività, ad esempio Cloud Tasks Admin (roles/cloudtasks.admin), Cloud Tasks Queue Admin (roles/cloudtasks.queueAdmin) o Cloud Tasks Task Deleter (roles/cloudtasks.taskDeleter).

Elimina un'attività da una coda

Puoi eliminare un'attività se è pianificata o assegnata. Ad esempio, potresti dover eliminare un'attività che non può essere completata correttamente, indipendentemente dal numero di tentativi. Non puoi eliminare un'attività se è stata completata correttamente o se ha esaurito i tentativi dopo errori ripetuti. Un'attività viene eliminata automaticamente se viene raggiunto il limite di conservazione massima delle attività.

Console

  1. Nella console Google Cloud , vai alla pagina Cloud Tasks > Code.

    Vai a Code

  2. Fai clic sul nome della coda per l'attività che vuoi eliminare.

  3. Seleziona la casella di controllo per l'attività da eliminare.

  4. Fai clic su Elimina attività.

  5. Al prompt, fai clic su Elimina.

gcloud

Elimina un'attività utilizzando il comando gcloud tasks delete:

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

Sostituisci quanto segue:

  • TASK_NAME: l'ID o il nome completo della risorsa dell'attività che vuoi eliminare
  • QUEUE_ID: il nome della coda a cui appartiene il task
  • LOCATION: la regione in cui viene eseguito il deployment della coda, ad esempio us-central1

REST

Per eliminare un'attività, utilizza il metodo projects.locations.queues.tasks.delete.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • QUEUE_ID: il nome della coda a cui appartiene l'attività
  • TASK_NAME: il nome dell'attività che vuoi eliminare
  • PROJECT_ID: il tuo ID progetto Google Cloud
  • LOCATION: la regione in cui esiste la coda, ad esempio us-central1

Il corpo della richiesta deve essere vuoto.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta è vuoto.

Elimina un gruppo di attività da una coda

Puoi eliminare un gruppo di attività da una coda utilizzando il metodo projects.locations.queues.tasks.batchDelete per eliminare un elenco di nomi di attività.

Tieni presente quanto segue:

  • Tutte le attività devono essere eliminate dalla stessa coda.

  • Esiste un limite al numero di attività che possono essere eliminate in un singolo batch. Per saperne di più, consulta Quote e limiti.

  • Le richieste batch, che aggregano singole operazioni in un'unica richiesta, non sono atomiche perché è possibile che alcune delle operazioni contenute nel batch non vadano a buon fine, mentre altre sì.

  • Puoi eliminare un'attività solo se è pianificata o inviata. Non puoi eliminare un'attività se è stata completata correttamente o se ha esaurito i tentativi dopo aver fallito ripetutamente. Un'attività viene eliminata automaticamente se viene raggiunto il limite di conservazione massima delle attività.

  • Puoi anche creare un batch di attività. Per saperne di più, consulta Crea un gruppo di attività.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • TASK_NAME: il nome delle attività da eliminare nel seguente formato: projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID
  • PROJECT_ID: il tuo ID progetto Google Cloud
  • REGION: la regione in cui esiste la coda, ad esempio us-central1
  • QUEUE_ID: il nome della coda a cui appartengono le attività

Il corpo della richiesta contiene un elenco di nomi di attività.

Corpo JSON della richiesta:

{
  "names": [
    "TASK_NAME"
  ]
}

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di Operation.

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

Elimina definitivamente tutte le attività da una coda

Puoi eliminare tutte le attività da una coda eliminandole definitivamente. Tutte le attività create prima della chiamata di eliminazione vengono eliminate definitivamente. Tuttavia, le operazioni di eliminazione possono richiedere fino a un minuto per avere effetto e le attività potrebbero essere inviate prima che l'eliminazione abbia effetto.

Console

  1. Nella console Google Cloud , vai alla pagina Cloud Tasks > Code.

    Vai a Code

  2. Fai clic sul nome della coda per le attività che vuoi eliminare.

  3. Fai clic su Elimina coda.

  4. Al prompt, fai clic su Elimina.

gcloud

Elimina definitivamente una coda utilizzando il comando gcloud tasks queues purge:

gcloud tasks queues purge QUEUE_ID \
    --location=LOCATION

Sostituisci quanto segue:

  • QUEUE_ID: il nome della coda che vuoi eliminare definitivamente
  • LOCATION: la regione in cui viene eseguito il deployment della coda, ad esempio us-central1

REST

Per eliminare definitivamente una coda, utilizza il metodo projects.locations.queues.purge.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • QUEUE_ID: il nome della coda che vuoi eliminare
  • PROJECT_ID: il tuo ID progetto Google Cloud
  • LOCATION: la regione in cui viene eseguito il deployment della coda, ad esempio us-central1

Il corpo della richiesta deve essere vuoto.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di 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"
}

Metti in pausa o riprendi le code

Puoi mettere in pausa o riprendere una coda. La messa in pausa di una coda interrompe l'esecuzione e la distribuzione delle attività. Puoi comunque creare attività e aggiungerle alla coda, ma non verranno elaborate finché la coda non verrà ripresa. Quando riprendi una coda, Cloud Tasks inizia a inviare le attività arretrate senza un ordine di esecuzione definito. Se riprendi code con traffico elevato e un backlog di grandi dimensioni, segui le indicazioni per l'incremento graduale per evitare il sovraccarico del target.

Console

  1. Nella console Google Cloud , vai alla pagina Cloud Tasks > Code.

    Vai a Code

  2. Seleziona la casella di controllo relativa alla coda che vuoi mettere in pausa o riprendere.

  3. Per mettere in pausa la coda, fai clic su Metti in pausa la coda, quindi fai clic su Metti in pausa nel prompt.

  4. Per riprendere una coda in pausa, fai clic su Riprendi coda.

gcloud

  1. Metti in pausa una coda utilizzando il comando gcloud tasks queues pause:

    gcloud tasks queues pause QUEUE_ID \
        --location=LOCATION

    Sostituisci quanto segue:

    • QUEUE_ID: il nome della coda che vuoi mettere in pausa
    • LOCATION: la regione in cui viene eseguito il deployment della coda, ad esempio us-central1
  2. Riprendi una coda utilizzando il comando gcloud tasks queues resume:

    gcloud tasks queues resume QUEUE_ID \
        --location=LOCATION

REST

  1. Per mettere in pausa una coda, utilizza il metodo projects.locations.queues.pause.

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • QUEUE_ID: il nome della coda che vuoi mettere in pausa
    • PROJECT_ID: il tuo ID progetto Google Cloud
    • LOCATION: la regione in cui viene eseguito il deployment della coda, ad esempio us-central1

    Il corpo della richiesta deve essere vuoto.

    Per inviare la richiesta, espandi una di queste opzioni:

    In caso di esito positivo, il corpo della risposta contiene un'istanza di 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. Per riprendere una coda, utilizza il metodo projects.locations.queues.resume.

    Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

    • QUEUE_ID: il nome della coda che vuoi riprendere
    • PROJECT_ID: il tuo ID progetto Google Cloud
    • LOCATION: la regione in cui viene eseguito il deployment della coda, ad esempio us-central1

    Il corpo della richiesta deve essere vuoto.

    Per inviare la richiesta, espandi una di queste opzioni:

    In caso di esito positivo, il corpo della risposta contiene un'istanza di 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"
    }
    

Elenca code

Puoi elencare le code. Quando elenchi le code, vengono restituiti alcuni dettagli relativi alla limitazione di frequenza e ai parametri di ripetizione. Tieni presente che i seguenti campi sono equivalenti:

  • Frequenza massima (Console), MAX_RATE (gcloud), maxDispatchesPerSecond (REST)
  • Numero massimo di richieste simultanee (Console), MAX_NUM_OF_TASKS (gcloud), maxConcurrentDispatches (REST)

Console

  1. Nella console Google Cloud , vai alla pagina Cloud Tasks > Code.

    Vai a Code

    Vengono elencate tutte le code nel tuo progetto Google Cloud .

  2. Per maggiori dettagli, fai clic sul nome di una coda, quindi sulla scheda Configurazione.

    Vengono visualizzati i dettagli dei parametri di limitazione di frequenza e di ripetizione.

gcloud

Elenca le code utilizzando il comando gcloud tasks queues list:

gcloud tasks queues list \
    --location=LOCATION

Sostituisci LOCATION con la regione in cui è stato eseguito il deployment della coda, ad esempio us-central1. Se non viene specificata una località, viene utilizzata quella dell'app App Engine del tuo progetto Google Cloud , se esiste; in caso contrario, devi specificare una località.

L'output dovrebbe essere simile al seguente:

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

REST

Per elencare le code, utilizza il metodo projects.locations.queues.list.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione in cui vengono create le code, ad esempio us-central1.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene istanze di risorse Queue e la risposta dovrebbe essere simile alla seguente:

{
  "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"
}

Elimina code

Puoi eliminare qualsiasi coda quando non ti serve più, ad eccezione della coda default di App Engine. Dopo aver eliminato una coda, devi attendere 3 giorni prima di ricrearla con lo stesso nome. Questo periodo di attesa si applica alle code eliminate tramite qualsiasi interfaccia, tra cui la console Google Cloud , gcloud CLI, l'API REST o RPC o Terraform. In questo modo, si evitano comportamenti imprevisti nelle attività in esecuzione al momento dell'eliminazione e si evitano errori dei processi interni durante il ciclo di eliminazione e ricreazione.

Durante questo periodo di tombstone, che può durare fino a 3 giorni, una richiesta di creazione della coda potrebbe sembrare riuscita senza ricreare la coda. Per confermare che una coda con lo stesso nome è stata ricreata, recuperala utilizzando il comando gcloud tasks queues describe o il metodo projects.locations.queues.get. Una risposta positiva (200 OK) conferma che la coda è stata ricreata.

Per cancellare le attività, modificare le configurazioni delle code o gestire le code nelle pipeline CI/CD senza perdere la coda o attivare il periodo di attesa di 3 giorni, utilizza le seguenti alternative anziché eliminare e ricreare una coda:

Per eliminare una coda, utilizza la console Google Cloud , gcloud CLI o l'API Cloud Tasks:

Console

  1. Nella console Google Cloud , vai alla pagina Cloud Tasks > Code.

    Vai a Code

  2. Seleziona la casella di controllo per la coda da eliminare.

  3. Fai clic su Elimina coda.

  4. Al prompt, inserisci il nome della coda e fai clic su Conferma.

gcloud

Elimina una coda utilizzando il comando gcloud tasks queues delete:

gcloud tasks queues delete QUEUE_ID \
    --location=LOCATION

Sostituisci quanto segue:

  • QUEUE_ID: l'ID o l'identificatore completo della coda che vuoi eliminare
  • LOCATION: la regione in cui viene eseguito il deployment della coda, ad esempio us-central1

gcloud CLI richiede la conferma prima di eliminare la coda, a meno che non passi il flag --quiet.

REST

Per eliminare una coda, utilizza il metodo projects.locations.queues.delete.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • QUEUE_ID: il nome della coda che vuoi eliminare
  • PROJECT_ID: il tuo ID progetto Google Cloud
  • LOCATION: la regione in cui viene eseguito il deployment della coda, ad esempio us-central1

Il corpo della richiesta deve essere vuoto.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta è vuoto.

Passaggi successivi