Le attività push elaborate tramite una coda di attività possono non riuscire per diversi motivi. Se un gestore non riesce a eseguire un'attività (e quindi restituisce qualsiasi codice di stato HTTP che non rientra nell'intervallo 200-299), App Engine riprova a eseguire l'attività finché l'operazione non va a buon fine.
Per impostazione predefinita, il sistema riduce gradualmente la frequenza di nuovi tentativi per evitare di sovraccaricare l'applicazione con troppe richieste, ma pianifica i tentativi di ripetizione al massimo una volta all'ora finché l'attività non viene completata.
Nuovo tentativo di esecuzione delle attività
Puoi personalizzare il tuo schema per i nuovi tentativi di attività
aggiungendo l'elemento retry
parameters
in
. Questa aggiunta consente di specificare il numero massimo di volte in cui riprovare le attività non riuscite in una coda specifica. Puoi anche impostare un limite di tempo per i nuovi tentativi e controllare l'intervallo tra i tentativi.queue.xml
L'esempio seguente illustra vari scenari di nuovo tentativo:
- In
fooqueue
, le attività vengono tentate fino a sette volte e per un massimo di due giorni dal primo tentativo di esecuzione. Una volta superati entrambi i limiti, l'operazione non andrà a buon fine in modo definitivo. - In
barqueue
, App Engine tenta di riprovare le attività, aumentando l'intervallo in modo lineare tra ogni nuovo tentativo fino a raggiungere il backoff massimo e riprovando a tempo indeterminato all'intervallo massimo (quindi gli intervalli tra le richieste sono 10, 20, 30 secondi, ..., 190, 200, 200 secondi e così via). - In
bazqueue
, l'intervallo tra i diversi tentativi inizia a 10 secondi, per poi raddoppiare tre volte, poi aumentare in modo lineare e, infine, riprovare a tempo indeterminato all'intervallo massimo (quindi gli intervalli tra le richieste sono 10, 20, 40, 80, 160, 240, 300, 300 e così via).
<?xml version="1.0" encoding="utf-8"?>
<queue-entries>
<queue>
<name>fooqueue</name>
<rate>1/s</rate>
<retry-parameters>
<task-retry-limit>7</task-retry-limit>
<task-age-limit>2d</task-age-limit>
</retry-parameters>
</queue>
<queue>
<name>barqueue</name>
<rate>1/s</rate>
<retry-parameters>
<min-backoff-seconds>10</min-backoff-seconds>
<max-backoff-seconds>200</max-backoff-seconds>
<max-doublings>0</max-doublings>
</retry-parameters>
</queue>
<queue>
<name>bazqueue</name>
<rate>1/s</rate>
<retry-parameters>
<min-backoff-seconds>10</min-backoff-seconds>
<max-backoff-seconds>300</max-backoff-seconds>
<max-doublings>3</max-doublings>
</retry-parameters>
</queue>
</queue-entries>
Passaggi successivi
- Scopri di più sui parametri delle code di attività.