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 ci sono garanzie o tentativi di eseguire le attività in un determinato ordine. Nello specifico: non vi è alcuna garanzia che le attività precedenti vengano eseguite a meno che non sia presente una coda è completamente svuotato. Si verificano diversi casi comuni in cui le attività più recenti eseguite prima delle attività meno recenti, e i pattern che ne circondano possono cambiare senza preavviso.
Esecuzione duplicata
Cloud Tasks punta a un'esecuzione rigorosa "esattamente una volta" semantica. Tuttavia, nei casi in cui è necessario trovare un compromesso tra ed esecuzione duplicata, il servizio è in errore rispetto al contesto dell'esecuzione. Di conseguenza, si verifica un numero diverso da zero di esecuzioni duplicate. Gli sviluppatori devono adottare misure per garantire che l'esecuzione duplicata non sia un evento catastrofico. In produzione, oltre il 99,999% delle attività viene eseguito solo una volta sola.
Limitazioni delle risorse
La fonte più comune di backlog nelle code di elaborazione immediate è l'esaurimento e risorse sulle 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 percentuali applicate
I server in sovraccarico 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
vengono interrotti. Questa limitazione del sistema impedisce al worker di sovraccaricarsi. 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 valore di backoff specificato in
rate limits
. Ma se il worker restituisce HTTP429 Too Many Requests
,503 Service Unavailable
o il tasso di errori è elevato, Cloud Tasks utilizza un tasso di backoff più elevato. Il nuovo tentativo specificato nell'URL HTTPRetry-After
viene presa in considerazione l'intestazione della risposta.Per evitare picchi di traffico e attenuare gli aumenti improvvisi del traffico, gli invii aumentano lentamente quando la coda viene creata di recente o inattiva e se è di grandi dimensioni un numero elevato di attività diventa improvvisamente disponibile per l'invio (a causa di picchi nella le frequenze di attività, la riattivazione della coda o 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 questo caso, le richieste rimangono aperte più a lungo. Poiché le code vengono eseguite con un
massimo di attività simultanee, ciò può impedire che le code
di eseguire attività con la 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. Ma l'aumento di max_concurrent_tasks
è improbabile che attenua la pressione di fondo
delle risorse.
Problemi di applicazione delle modifiche con attività a lunga esecuzione
Le code di Cloud Tasks incrementano l'output in parte in base al numero di eseguite correttamente. 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 nella console Google Cloud. Utilizza l'interfaccia a riga di comando gcloud per visualizzare tutte le attività.