Reintenta trabajos

De forma predeterminada, si un trabajo de Cloud Scheduler no recibe una confirmación de su controlador, se considera que el trabajo falló y se volverá a intentar según la retirada exponencial que hayas configurado. Puedes determinar este comportamiento de reintento de las siguientes maneras cuando creas o actualizas un trabajo de Cloud Scheduler:

Configuración de reintentos

En las siguientes tablas, se describen los parámetros de configuración de reintentos que puedes establecer.

Cantidad máxima de reintentos

Es la cantidad de intentos que realizará el sistema para ejecutar un trabajo con el procedimiento de retirada exponencial que describe maxDoublings.

Descripción

Si retryCount se establece en un número distinto de cero, Cloud Scheduler reintentará el trabajo fallido con una retirada exponencial durante retryCount veces hasta que el trabajo se realice correctamente o se agote la cantidad de reintentos. Ten en cuenta que es posible que se omita la próxima hora de ejecución programada si los reintentos continúan hasta esa hora.

Si retryCount es 0 (y si maxRetryDuration también es 0), no se reintentará un intento de trabajo si falla. En cambio, Cloud Scheduler esperará la próxima hora de ejecución programada.

No se permiten valores superiores a 5 ni valores negativos.

Predeterminado El valor predeterminado es 0.
Etiqueta de la consola Cantidad máx. de reintentos
Marca CLI --max-retry-attempts
Campo de API retryCount

Duración máxima del reintento

Es el límite de tiempo para reintentar un trabajo con errores, medido desde el momento en que se intentó realizar una ejecución por primera vez. Si se especifica con retryCount, se volverá a intentar el trabajo hasta que se alcancen ambos límites.

Descripción

Una duración en segundos con hasta nueve dígitos decimales, que termina con "s", por ejemplo, "3.5s".

Una duración de 0 significa que la duración del reintento es ilimitada. Sin embargo, si retryCount también es 0, no se volverá a intentar un intento de trabajo si falla.

Predeterminado El valor predeterminado es 0 segundos.
Etiqueta de la consola Duración máx. del reintento
Marca CLI --max-retry-duration
Campo de API maxRetryDuration

Duración mínima de la retirada

Es la cantidad mínima de tiempo que se debe esperar antes de reintentar un trabajo después de que falla.

Descripción

Una duración en segundos con hasta nueve dígitos decimales, que termina con "s", por ejemplo, "3.5s".

Predeterminado El tiempo predeterminado es 5 segundos.
Etiqueta de la consola Duración mín. de la retirada
Marca CLI --min-backoff
Campo de API minBackoffDuration

Duración máxima de la retirada

Es la cantidad máxima de tiempo que se espera antes de reintentar un trabajo después de que falla.

Descripción

Una duración en segundos con hasta nueve dígitos decimales, que termina con "s", por ejemplo, "3.5s".

Predeterminado El valor predeterminado es 3,600 segundos (1 hora).
Etiqueta de la consola Duración máxima de la retirada
Marca CLI --max-backoff
Campo de API maxBackoffDuration

Duplicaciones máximas

Cantidad máxima de veces que se duplicará el intervalo entre los reintentos de los trabajos con errores antes de que el aumento se vuelva constante.

Descripción El tiempo entre reintentos se duplicará maxDoublings veces.

El intervalo de reintento de un trabajo comienza en minBackoffDuration, luego se duplica maxDoublings veces, después aumenta linealmente y, por último, reintenta en intervalos de maxBackoffDuration hasta retryCount veces. Por ejemplo:

Si minBackoffDuration es 10 s, maxBackoffDuration es 300 s y maxDoublings es 3,

  1. El trabajo se volverá a intentar en 10 s.
  2. El intervalo de reintento se duplicará tres veces.
  3. Luego, el intervalo de reintento aumentará de forma lineal en 2^3 * 10 s.
  4. Si corresponde, el trabajo se reintentará en intervalos de maxBackoffDuration hasta que se haya intentado retryCount veces (hasta un máximo de 5 veces).

Por lo tanto, las solicitudes se reintentarán a los 10 s, 20 s, 40 s, 80 s y 160 s.

Si minBackoffDuration es 10 s, maxBackoffDuration es 120 s y maxDoublings es 2,

  1. El trabajo se volverá a intentar en 10 s.
  2. El intervalo de reintento se duplicará dos veces.
  3. Luego, el intervalo de reintento aumentará de forma lineal en 2^3 * 10 s.
  4. Si corresponde, el trabajo se reintentará en intervalos de maxBackoffDuration hasta que se haya intentado retryCount veces (hasta un máximo de 5 veces).

Por lo tanto, las solicitudes se reintentarán a los 10 s, 20 s, 40 s, 120 s y 120 s.

Predeterminado El valor predeterminado es 5.
Etiqueta de la consola Duplicaciones máximas
Marca CLI --max-doublings
Campo de API maxDoublings

Ejemplos de reintentos

En los siguientes ejemplos, se muestra el comportamiento de reintento cuando un trabajo de Cloud Scheduler no se completa correctamente.

Si no se configuran retryCount ni maxRetryDuration

Ambos parámetros de configuración tienen el valor predeterminado 0, y el trabajo no se reintenta.

Ten en cuenta que Cloud Scheduler intentará ejecutar el trabajo en la próxima hora de ejecución programada.

Si se configuran retryCount y maxRetryDuration

El trabajo se reintentará al menos retryCount veces hasta alcanzar maxRetryDuration.

Ten en cuenta que el trabajo podría volver a intentarse más veces que el valor de retryCount.

Si se configura retryCount y no se configura maxRetryDuration

El parámetro de configuración maxRetryDuration se establece de forma predeterminada en 0, y el trabajo se reintentará exactamente retryCount veces.

Si retryCount no está configurado y maxRetryDuration

El trabajo se reintentará cualquier cantidad de veces (hasta un máximo de 5) o hasta que se alcance maxRetryDuration.