Repetir jobs

Por padrão, se um job do Cloud Scheduler não receber um reconhecimento do gerenciador, ele será considerado com falha e vai tentar novamente de acordo com a espera exponencial configurada. É possível determinar esse comportamento de repetição das seguintes maneiras ao criar ou atualizar um job do Cloud Scheduler:

Tentar novamente as configurações

As tabelas a seguir descrevem as configurações de nova tentativa que podem ser definidas.

Máximo de tentativas de repetição

O número de tentativas que o sistema fará para executar um job usando o procedimento de espera exponencial descrito por maxDoublings.

Descrição

Se retryCount for definido como um número diferente de zero, o Cloud Scheduler vai tentar executar o job com falha novamente retryCount vezes usando espera exponencial até que ele seja concluído ou o número de novas tentativas seja esgotado. O próximo horário de execução programado pode ser ignorado se as novas tentativas continuarem até esse horário.

Se retryCount for 0 (e se maxRetryDuration também for 0), uma tentativa de job não será repetida se falhar. Em vez disso, o Cloud Scheduler vai esperar o próximo horário de execução programado.

Valores maiores que 5 e negativos não são permitidos.

Padrão O padrão é 0.
Marcador do console Máximo de tentativas de repetição
Sinalização da CLI --max-retry-attempts
Campo da API retryCount

Duração máxima da nova tentativa

O limite de tempo para tentar novamente um job com falha, medido a partir do momento em que uma execução foi tentada pela primeira vez. Se especificado com retryCount, o job será repetido até que ambos os limites sejam atingidos.

Descrição

Uma duração em segundos com até nove dígitos fracionários, terminando com "s", por exemplo, "3.5s".

Uma duração de 0 significa que a duração da nova tentativa é ilimitada. No entanto, se retryCount também for 0, uma tentativa de job não será repetida se ela falhar.

Padrão O padrão é 0 segundo.
Marcador do console Duração máxima da nova tentativa
Sinalização da CLI --max-retry-duration
Campo da API maxRetryDuration

Duração mínima de espera

O tempo mínimo de espera antes de tentar novamente um job após a falha.

Descrição

Uma duração em segundos com até nove dígitos fracionários, terminando com "s", por exemplo, "3.5s".

Padrão O padrão é 5 segundos.
Marcador do console Duração mínima de espera
Sinalização da CLI --min-backoff
Campo da API minBackoffDuration

Duração máxima de espera

O tempo máximo de espera antes de tentar novamente depois que o job falhar.

Descrição

Uma duração em segundos com até nove dígitos fracionários, terminando com "s", por exemplo, "3.5s".

Padrão O padrão é 3.600 segundos (1 hora).
Marcador do console Duração máxima de espera
Sinalização da CLI --max-backoff
Campo da API maxBackoffDuration

Nº máximo de duplicações

Número máximo de vezes que o intervalo entre novas tentativas de jobs com falha será dobrado antes que o aumento se torne constante.

Descrição O tempo entre novas tentativas será dobrado maxDoublings vezes.

O intervalo de repetição de um job começa em minBackoffDuration, depois duplica maxDoublings vezes, aumenta linearmente e finalmente tenta novamente em intervalos de maxBackoffDuration até retryCount vezes. Exemplo:

Se minBackoffDuration for 10s, maxBackoffDuration for 300s e maxDoublings for 3:

  1. O job será repetido em 10 segundos.
  2. O intervalo de repetição será dobrado três vezes.
  3. O intervalo de repetição vai aumentar linearmente em 2^3 * 10s.
  4. Se aplicável, o job vai tentar novamente em intervalos de maxBackoffDuration até que ele seja tentado retryCount vezes (no máximo cinco vezes).

Assim, as solicitações serão repetidas em 10s, 20s, 40s, 80s e 160s.

Se minBackoffDuration for 10s, maxBackoffDuration for 120s e maxDoublings for 2:

  1. O job será repetido em 10 segundos.
  2. O intervalo de repetição será dobrado duas vezes.
  3. O intervalo de repetição vai aumentar linearmente em 2^3 * 10s.
  4. Se aplicável, o job vai tentar novamente em intervalos de maxBackoffDuration até que ele seja tentado retryCount vezes (no máximo cinco vezes).

Assim, as solicitações serão repetidas em 10s, 20s, 40s, 120s e 120s.

Padrão O padrão é 5.
Marcador do console Nº máximo de duplicações
Sinalização da CLI --max-doublings
Campo da API maxDoublings

Exemplos de repetição

Os exemplos a seguir demonstram o comportamento de novas tentativas quando um job do Cloud Scheduler não é concluído.

Se retryCount e maxRetryDuration não estiverem definidos

As duas configurações têm o valor padrão 0, e o job não é repetido.

O Cloud Scheduler vai tentar executar o job no próximo horário de execução programado.

Se retryCount e maxRetryDuration forem definidos

O job vai tentar novamente pelo menos retryCount vezes até atingir maxRetryDuration.

O job pode tentar novamente mais vezes do que o retryCount.

Se retryCount estiver definido e maxRetryDuration não estiver

A configuração maxRetryDuration tem como padrão 0, e o job vai tentar novamente exatamente retryCount vezes.

Se retryCount não estiver definido e maxRetryDuration estiver

O job vai tentar novamente qualquer número de vezes (até um máximo de 5 vezes) ou até atingir maxRetryDuration.