Problemi e limitazioni

Quando utilizzi Cloud Tasks, potresti riscontrare i seguenti problemi e limitazioni:

Ordine di esecuzione

Ad eccezione delle attività pianificate per l'esecuzione future, le code di attività sono completamente indipendenti dall'ordine di esecuzione. Non esistono garanzie o tentativi di eseguire attività in un ordine particolare. Nello specifico, non vi è alcuna garanzia che le attività precedenti vengano eseguite a meno che una coda non sia completamente vuota. Esistono alcuni casi comuni in cui le attività più recenti vengono eseguite prima di quelle precedenti e i pattern circostanti possono cambiare senza preavviso.

Esecuzione duplicata

Cloud Tasks punta a una semantica rigorosa "esegui una sola volta". Tuttavia, nei casi in cui è necessario scendere a un compromesso nella progettazione tra esecuzione garantita ed esecuzione duplicata, il servizio va oltre l'esecuzione garantita. Di conseguenza, si verifica un numero diverso da zero di esecuzioni duplicate. Gli sviluppatori dovrebbero adottare le misure necessarie per garantire che l'esecuzione duplicata non sia un evento catastrofico. In produzione, oltre il 99,999% delle attività viene eseguito una sola volta.

Limitazioni delle risorse

L'origine di backlog più comune nelle code di elaborazione immediate è l'esaurimento delle risorse nelle istanze di destinazione. Se un utente cerca di eseguire 100 attività al secondo su istanze di frontend che possono elaborare solo 10 richieste al secondo, verrà creato un backlog. In genere questo si manifesta in due modi, uno dei quali può essere generalmente risolto 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 sotto forma di codice di risposta HTTP 503. Cloud Tasks reagirà a questi errori rallentando l'esecuzione fino all'arresto degli errori.

Picchi di latenza e numero massimo di connessioni in parallelo

I server sovraccarichi possono inoltre reagire con grandi incrementi della latenza. In questo caso, le richieste rimangono aperte per più tempo. Poiché le code vengono eseguite con un numero massimo di attività simultanee, le code potrebbero non essere in grado di eseguire le attività alla frequenza prevista. L'aumento del valore di max_concurrent_tasks per le code interessate può essere utile quando il valore è stato impostato troppo basso, introducendo un limite di frequenza artificiale. È improbabile che l'aumento di max_concurrent_tasks allevia la pressione sottostante sulle risorse.

Incrementare i problemi con attività di lunga durata

Le code di Cloud Tasks aumentano l'output in parte in base al numero di attività inviate correttamente in precedenza. Se il gestore delle attività impiega un lungo periodo di tempo (nell'ordine dei minuti) per completare un'attività e restituire una risposta con esito positivo, potrebbe esserci un ritardo nella percentuale di aumento della coda.

Visualizzazione di più di 5000 attività

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