Problemi e limitazioni

Questa pagina descrive alcuni dei problemi e delle limitazioni che potresti riscontrare quando utilizzi Cloud Tasks.

Ordine di esecuzione

Ad eccezione delle attività pianificate per l'esecuzione in futuro, le code di attività sono completamente indipendenti dalla piattaforma per quanto riguarda l'ordine di esecuzione. Non vengono fornite garanzie o tentativi di best effort per eseguire le attività in un ordine specifico. Nello specifico, non è garantito che le attività precedenti vengano eseguite a meno che una coda non sia completamente vuota. Esistono diversi casi comuni in cui le attività più recenti vengono eseguite prima di quelle meno recenti e i pattern che riguardano questo aspetto possono cambiare senza preavviso.

Esecuzione duplicata

Cloud Tasks mira a una semantica rigorosa "esegui esattamente una volta". Tuttavia, nelle situazioni in cui è necessario fare un compromesso di progettazione tra l'esecuzione garantita e l'esecuzione duplicata, il servizio privilegia l'esecuzione garantita. Di conseguenza, si verifica un numero diverso da zero di esecuzioni duplicate. Gli sviluppatori devono adottare misure per assicurarsi che l'esecuzione duplicata non sia un evento catastrofico. In produzione, oltre il 99,999% delle attività viene eseguito solo una volta.

Limitazioni delle risorse

La causa più comune dei backlog nelle code di elaborazione immediata è l'esaurimento delle risorse nelle istanze di destinazione. Se un utente tenta di eseguire 100 attività al secondo su istanze frontend che possono elaborare solo 10 richieste al secondo, si creerà un backlog. Questo problema si manifesta in genere in due modi, entrambi solitamente risolvibili aumentando il numero di istanze che elaborano le richieste.

Errori di backoff e tariffe applicate

I server sovraccaricati possono iniziare a restituire errori di backoff: HTTP 503 (per le destinazioni App Engine) o HTTP 429 o 5xx (per le destinazioni esterne). Cloud Tasks reagisce a questi errori rallentando l'esecuzione finché non si verificano più. Questa limitazione del sistema impedisce il sovraccarico del worker. Tieni presente che le impostazioni specificate dall'utente non vengono modificate.

Il throttling del sistema si verifica nelle seguenti circostanze:

  • Cloud Tasks esegue il riavvio in caso di tutti gli errori. In genere viene utilizzato il backoff specificato in rate limits. Tuttavia, se il worker restituisce HTTP 429 Too Many Requests, 503 Service Unavailable o se il tasso di errori è elevato, Cloud Tasks utilizza una frequenza di backoff più elevata. Viene preso in considerazione il nuovo tentativo specificato nell'intestazione della risposta HTTP Retry-After.

  • Per evitare picchi di traffico e per attenuare gli aumenti improvvisi del traffico, le spedizioni aumentano lentamente quando la coda è appena creata o inattiva e se un gran numero di attività diventano improvvisamente disponibili per la spedizione (a causa di picchi nelle rate di creazione delle attività, della rimozione della messa in pausa della coda o di molte attività pianificate contemporaneamente).

Picchi di latenza e numero massimo di richieste simultanee

I server sovraccaricati possono anche rispondere con aumenti significativi della latenza. In questa situazione, le richieste rimangono aperte più a lungo. Poiché le code vengono eseguite con un numero massimo di attività in contemporanea, ciò può comportare la loro impossibilità di eseguire le attività alla velocità prevista. L'aumento del valore max_concurrent_tasks per le code interessate può essere utile in situazioni in cui il valore è stato impostato troppo basso, introducendo un limite di frequenza artificiale. Tuttavia, è improbabile che l'aumento di max_concurrent_tasks allevi la pressione sulle risorse sottostanti.

Problemi di incremento con le attività a lunga esecuzione

Le code Cloud Tasks aumentano la loro produzione in parte in base al numero di attività inviate in precedenza e andate a buon fine. Se il gestore delle attività impiega un periodo di tempo considerevole, nell'ordine di minuti, per completare un'attività e restituire una risposta di successo, può verificarsi un ritardo nel tasso di aumento della coda.

Visualizzazione di più di 5000 attività

Se hai più di 5000 attività, alcune non sono visibili nella consoleGoogle Cloud . Utilizza gcloud CLI per visualizzare tutte le attività.