Riprova job

Per impostazione predefinita, se un job Cloud Scheduler non riceve una conferma dal suo gestore, il job viene considerato non riuscito e verrà ritentato in base al backoff esponenziale che hai configurato. Puoi determinare questo comportamento di ripetizione nei seguenti modi quando crei o aggiorni un job Cloud Scheduler:

Impostazioni di nuovi tentativi

Le tabelle seguenti descrivono le impostazioni di ripetizione dei tentativi che puoi configurare.

Numero massimo di nuovi tentativi

Il numero di tentativi che il sistema eseguirà per eseguire un job utilizzando la procedura di backoff esponenziale descritta da maxDoublings.

Descrizione

Se retryCount è impostato su un numero diverso da zero, Cloud Scheduler riproverà a eseguire il job non riuscito, utilizzando il backoff esponenziale, per retryCount volte finché il job non viene eseguito correttamente o il numero di tentativi è esaurito. Tieni presente che la successiva ora di esecuzione pianificata potrebbe essere ignorata se i tentativi continuano fino a quell'ora.

Se retryCount è 0 (e se anche maxRetryDuration è 0), un tentativo di job non verrà ritentato in caso di errore. Cloud Scheduler attenderà il successivo orario di esecuzione pianificato.

Non sono consentiti valori superiori a 5 e valori negativi.

Predefinito Il valore predefinito è 0.
Etichetta console Numero massimo di nuovi tentativi
Flag CLI --max-retry-attempts
Campo API retryCount

Durata massima dei nuovi tentativi

Il limite di tempo per ritentare un job non riuscito, misurato dal momento in cui è stato tentato per la prima volta un'esecuzione. Se specificato con retryCount, il job verrà riprovato finché non vengono raggiunti entrambi i limiti.

Descrizione

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s", ad esempio "3,5 s".

Una durata pari a 0 indica che la durata del nuovo tentativo è illimitata. Tuttavia, se anche retryCount è 0, un tentativo di job non verrà ritentato se non va a buon fine.

Predefinito Il valore predefinito è 0 secondi.
Etichetta console Durata massima nuovi tentativi
Flag CLI --max-retry-duration
Campo API maxRetryDuration

Durata minima di backoff

Il tempo minimo di attesa prima di riprovare un job non riuscito.

Descrizione

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s", ad esempio "3,5 s".

Predefinito Il valore predefinito è 5 secondi.
Etichetta console Durata minima di backoff
Flag CLI --min-backoff
Campo API minBackoffDuration

Durata massima di backoff

Il tempo massimo di attesa prima di riprovare un job non riuscito.

Descrizione

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s", ad esempio "3,5 s".

Predefinito Il valore predefinito è 3600 secondi (1 ora).
Etichetta console Durata massima backoff
Flag CLI --max-backoff
Campo API maxBackoffDuration

Numero massimo di raddoppi

Numero massimo di volte in cui l'intervallo tra i tentativi di esecuzione di un job non riuscito verrà raddoppiato prima che l'aumento diventi costante.

Descrizione Il tempo tra i tentativi raddoppia maxDoublings volte.

L'intervallo tra i tentativi di un job inizia a minBackoffDuration, quindi raddoppia maxDoublings volte, poi aumenta in modo lineare e infine riprova a intervalli di maxBackoffDuration fino a retryCount volte. Ad esempio:

Se minBackoffDuration è 10 secondi, maxBackoffDuration è 300 secondi e maxDoublings è 3:

  1. Il job verrà ritentato tra 10 secondi.
  2. L'intervallo di nuovi tentativi raddoppierà tre volte.
  3. L'intervallo tra i tentativi aumenterà quindi in modo lineare di 2^3 * 10 secondi.
  4. Se applicabile, il job verrà ritentato a intervalli di maxBackoffDuration fino a quando non sarà stato tentato retryCount volte (fino a un massimo di 5 volte).

Pertanto, i tentativi verranno ripetuti dopo 10, 20, 40, 80 e 160 secondi.

Se minBackoffDuration è 10 secondi, maxBackoffDuration è 120 secondi e maxDoublings è 2:

  1. Il job verrà ritentato tra 10 secondi.
  2. L'intervallo di nuovi tentativi raddoppierà due volte.
  3. L'intervallo tra i tentativi aumenterà quindi in modo lineare di 2^3 * 10 secondi.
  4. Se applicabile, il job verrà ritentato a intervalli di maxBackoffDuration fino a quando non sarà stato tentato retryCount volte (fino a un massimo di 5 volte).

Pertanto, i tentativi verranno ripetuti dopo 10, 20, 40, 120 e 120 secondi.

Predefinito Il valore predefinito è 5.
Etichetta console Numero massimo di raddoppi
Flag CLI --max-doublings
Campo API maxDoublings

Esempi di nuovi tentativi

Gli esempi seguenti mostrano il comportamento di ripetizione quando un job Cloud Scheduler non viene completato correttamente.

Se retryCount e maxRetryDuration non sono impostati

Entrambe le impostazioni sono impostate su 0 per impostazione predefinita e il job non viene riprovato.

Tieni presente che Cloud Scheduler tenterà di eseguire il job al successivo orario di esecuzione pianificato.

Se sono impostati sia retryCount che maxRetryDuration

Il job verrà ritentato almeno retryCount volte fino a raggiungere maxRetryDuration.

Tieni presente che il job potrebbe essere ritentato più volte rispetto a retryCount.

Se retryCount è impostato e maxRetryDuration non è impostato

L'impostazione maxRetryDuration è impostata su 0 per impostazione predefinita e il job verrà ritentato esattamente retryCount volte.

Se retryCount non è impostato e maxRetryDuration è impostato

Il job verrà ritentato un numero qualsiasi di volte (fino a un massimo di 5 volte) o fino al raggiungimento di maxRetryDuration.