Creare code push

Questa pagina descrive come creare e personalizzare una coda in modalità push e come esaminare il contenuto di una coda.

Utilizzo di un file di configurazione della coda per creare code

Per elaborare un'attività, devi aggiungerla a una coda in modalità push. App Engine fornisce una coda in modalità push predefinita, denominata default, configurata e pronta all'uso con le impostazioni predefinite. Se vuoi, puoi semplicemente aggiungere tutte le tue attività alla coda predefinita, senza dover creare e configurare altre code.

Per aggiungere code o modificare la configurazione predefinita, modifica il file di configurazione delle code per la tua applicazione, che carichi su App Engine. Puoi creare fino a 100 code. Le code non possono essere create in modo dinamico.

Questo file di configurazione della coda definisce due code:

queue:
- name: queue-blue
  target: v2.task-module
  rate: 5/s

- name: queue-red
  rate: 1/s

Per caricare il file:

gcloud app deploy queue.yaml

Tutte le attività aggiunte a queue-blue vengono inviate al modulo di destinazione v2.task-module. La frequenza di aggiornamento di queue-red è cambiata da 5/s a 1/s. Le attività verranno rimosse dalla coda e inviate ai relativi target alla velocità di un'attività al secondo.

Se elimini una coda, devi attendere circa 7 giorni prima di crearne una nuova con lo stesso nome.

Esistono molti altri parametri che possono essere aggiunti al file di configurazione per personalizzare il comportamento di una coda in modalità push. Per ulteriori informazioni, consulta il riferimento al file di configurazione della coda.

Definizione della velocità di elaborazione della coda in modalità push

Puoi controllare la velocità con cui le attività vengono elaborate in ciascuna delle tue code definendo altre direttive, ad esempio rate, bucket_size, e max_concurrent_requests.

La coda di attività utilizza token bucket per controllare la velocità di esecuzione delle attività. Ogni coda denominata ha un token bucket che contiene token, fino al massimo specificato da bucket_size o a un massimo di 5 token se non specifichi le dimensioni del bucket.

Ogni volta che la tua applicazione esegue un'attività, un token viene rimosso dal bucket. La tua app continua a elaborare le attività nella coda finché il bucket della coda non esaurisce i token. App Engine riempie continuamente il bucket con nuovi token in base al rate che hai specificato per la coda.

Se la coda contiene attività da elaborare e il bucket della coda contiene token, App Engine elabora contemporaneamente tante attività quanti sono i token. Ciò può portare a picchi di elaborazione, consumando risorse di sistema e competendo con le richieste di servizio degli utenti.

Se vuoi impedire l'esecuzione simultanea di troppe attività o evitare la contesa del datastore, utilizza max_concurrent_requests.

Il seguente esempio mostra come impostare max_concurrent_requests per limitare le attività e come regolare le dimensioni e la frequenza del bucket in base alle esigenze dell'applicazione e alle risorse disponibili:

queue:
- name: queue-blue
  rate: 20/s
  bucket_size: 40
  max_concurrent_requests: 10

Impostare limiti di spazio di archiviazione per tutte le code

Puoi utilizzare il file di configurazione della coda per definire la quantità totale di spazio di archiviazione che i dati delle attività possono consumare in tutte le code. Per definire il limite di spazio di archiviazione totale, includi un elemento denominato total_storage_limit al livello più alto:

# Set the total storage limit for all queues to 120MB
total_storage_limit: 120M
queue:
- name: queue-blue
  rate: 35/s

Il valore è un numero seguito da un'unità: B per byte, K per kilobyte, M per megabyte, G per gigabyte, T per terabyte. Ad esempio, 100K specifica un limite di 100 kilobyte. Se l'aggiunta di un'attività causerebbe il superamento del limite di archiviazione della coda, la chiamata per aggiungere l'attività non andrà a buon fine. Il limite predefinito è 500M (500 megabyte) per le app gratuite. Per le app fatturate non esiste un limite finché non ne imposti uno esplicitamente. Puoi utilizzare questo limite per proteggere la tua app da un errore di programmazione fork bomb in cui ogni attività aggiunge più attività durante la sua esecuzione.

Se la tua app riceve errori di quota insufficiente durante l'aggiunta di attività, l'aumento del limite di spazio di archiviazione totale può essere utile. Se utilizzi questa funzionalità, ti consigliamo vivamente di impostare un limite corrispondente allo spazio di archiviazione necessario per diversi giorni di attività. Ciò consente di eseguire il backup temporaneo delle code e continuare ad accettare nuove attività mentre si lavora sul backlog, pur rimanendo protetti da un errore di programmazione di tipo fork bomb.

Monitoraggio delle code nella console Google Cloud

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

    Vai a Cloud Tasks

    Tieni presente che se vai alla pagina Coda delle attività di App Engine, troverai istruzioni che ti indirizzeranno alla pagina Cloud Tasks. Questo aggiornamento nella console Google Cloud non modifica il funzionamento delle code di attività.

  2. Abilita l'API Cloud Tasks.

  3. Una volta visualizzata la pagina Cloud Tasks, vedrai un elenco di tutte le code nell'applicazione. Se fai clic sul nome di una coda, viene visualizzata la pagina Dettagli coda, che mostra tutte le attività nella coda selezionata.

Passaggi successivi

Scopri di più sulla creazione di attività.