L'elaborazione delle attività push tramite una coda di attività può non riuscire per diversi motivi. Se un gestore non riesce a eseguire un'attività (e quindi restituisce un codice di stato HTTP al di fuori dell'intervallo 200-299), App Engine riprova l'attività finché non va a buon fine.
Per impostazione predefinita, il sistema riduce gradualmente la frequenza dei tentativi per evitare di sovraccaricare l'applicazione con troppe richieste, ma pianifica i tentativi di ripetizione in modo che si ripetano al massimo una volta all'ora finché l'attività non viene completata.
Nuovi tentativi per le attività
Puoi personalizzare il tuo schema per i tentativi di ripetizione delle attività aggiungendo l'elemento retry
parameters in
. Questa
aggiunta ti consente di specificare il numero massimo di tentativi per le attività non riuscite
in una coda specifica. Puoi anche impostare un limite di tempo per i tentativi e
controllare l'intervallo tra un tentativo e l'altro.queue.yaml
L'esempio seguente mostra vari scenari di nuovi tentativi:
- In
fooqueue
, i tentativi di esecuzione delle attività vengono ripetuti fino a sette volte e per un massimo di due giorni dal primo tentativo di esecuzione. Dopo aver superato entrambi i limiti, l'operazione non andrà a buon fine in modo permanente. - In
barqueue
, App Engine tenta di ripetere le attività, aumentando l'intervallo in modo lineare tra un tentativo e l'altro fino a raggiungere il backoff massimo e riprovando indefinitamente all'intervallo massimo (quindi gli intervalli tra le richieste sono 10 s, 20 s, 30 s, ..., 190 s, 200 s, 200 s, ...). - In
bazqueue
, l'intervallo tra i tentativi inizia a 10 secondi, poi raddoppia tre volte, aumenta in modo lineare e infine i tentativi vengono eseguiti a intervalli massimi (quindi gli intervalli tra le richieste sono 10 s, 20 s, 40 s, 80 s, 160 s, 240 s, 300 s, 300 s, ...).
<?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 della coda delle attività.