Creazione code in modalità 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 delle code per creare code

Per elaborare un'attività, devi aggiungerla a una coda push. App Engine fornisce una fila push predefinita, denominata default, che è configurata e pronta per l'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 della coda per la tua applicazione, che carichi su App Engine. Puoi creare fino a 100 code. Le code non possono essere create dinamicamente.

Questo file di configurazione delle code 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 cambia da 5/s a 1/s. Le attività saranno sono stati rimossi in coda e inviati ai rispettivi obiettivi alla velocità di 1 attività al secondo.

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

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

Definizione della frequenza di elaborazione della coda push

Puoi controllare la velocità di elaborazione delle attività in ciascuna coda definendo altre direttive, ad esempio rate, bucket_size e max_concurrent_requests.

La coda di attività utilizza i bucket token per controllare la frequenza di esecuzione delle attività. Ogni coda denominata ha un token bucket contiene token fino al limite massimo specificato da bucket_size o a un massimo di 5 token se non specifichi la dimensione del bucket.

Ogni volta che l'applicazione esegue un'attività, un token viene rimosso dal bucket. L'app continua a elaborare le attività nella coda finché il bucket della coda non rimane senza token. App Engine riempie il bucket con nuovi token basati in modo continuo su rate che hai specificato per la coda.

Se la coda contiene attività da elaborare e il relativo bucket contiene token, App Engine elabora contemporaneamente tutte le attività presenti nel bucket. Ciò può comportare picchi di elaborazione, consumare risorse di sistema e competere con le richieste di pubblicazione per gli utenti.

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

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

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

Impostazione dei 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 per i dati dell'attività può consumare su tutte le code. Per definire il limite di spazio di archiviazione totale, includi un elemento denominato total_storage_limit al livello superiore:

# 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 spazio di archiviazione della coda, la chiamata per l'aggiunta dell'attività non andrà a buon fine. Il limite predefinito è di 500M (500 megabyte) per le app gratuite. Per le app fatturate non esiste alcun limite finché non ne imposti uno esplicitamente. Puoi utilizzare questo limite per proteggere la tua app da un fork bomba errore di programmazione in cui ogni attività aggiunge più altre attività durante dell'esecuzione.

Se la tua app riceve errori per quota insufficiente durante l'aggiunta eseguire attività specifiche, può essere utile aumentare il limite di spazio di archiviazione totale. Se utilizzi questa funzionalità, ti consigliamo vivamente di impostare un limite che corrisponda allo spazio di archiviazione necessario per più giorni di attività. In questo modo le code vengono temporaneamente sottoposto a backup e continua ad accettare nuove attività mentre si lavora al carico di lavoro restando al riparo da una forchetta bomba errore di programmazione.

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 di lavoro di App Engine, troverai istruzioni che ti guideranno 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. Nella pagina Cloud Tasks viene visualizzato un elenco di tutte le code nell'applicazione. Facendo clic sul nome di una coda, la pagina Dettagli coda, che mostra tutte le attività nella coda selezionata.

Passaggi successivi

Scopri di più sulla creazione di attività.