Repetir tarefas

Por predefinição, se uma tarefa do Cloud Scheduler não receber uma confirmação do respetivo controlador, considera-se que a tarefa falhou e vai ser repetida de acordo com o recuo exponencial que configurou. Pode determinar este comportamento de repetição das seguintes formas quando cria ou atualiza uma tarefa do Cloud Scheduler:

Tentar novamente as definições

As tabelas seguintes descrevem as definições de repetição que pode configurar.

Número máximo de tentativas

O número de tentativas que o sistema vai fazer para executar uma tarefa através do procedimento de recuo exponencial descrito em maxDoublings.

Descrição

Se retryCount estiver definido como um número diferente de zero, o Cloud Scheduler vai tentar novamente a tarefa com falha, usando um recuo exponencial, retryCount vezes até a tarefa ser bem-sucedida ou o número de novas tentativas se esgotar. Tenha em atenção que a próxima hora de execução agendada pode ser ignorada se as novas tentativas continuarem até essa hora.

Se retryCount for 0 (e se maxRetryDuration também for 0), não é feita uma nova tentativa de uma tarefa se esta falhar. Em alternativa, o Cloud Scheduler aguarda a próxima hora de execução agendada.

Não são permitidos valores superiores a 5 nem valores negativos.

Predefinição A predefinição é 0.
Etiqueta da consola Tentativas máximas de repetição
Sinalização da CLI --max-retry-attempts
Campo da API retryCount

Duração máxima de repetição

O limite de tempo para repetir uma tarefa com falha, medido a partir do momento em que uma execução foi tentada pela primeira vez. Se especificado com retryCount, a tarefa é repetida até atingir ambos os limites.

Descrição

Uma duração em segundos com até nove dígitos fracionários, que termina com "s", por exemplo, "3,5 s".

Uma duração de 0 significa que a duração da nova tentativa é ilimitada. No entanto, se retryCount também for 0, não se vai tentar novamente uma tentativa de tarefa se falhar.

Predefinição A predefinição é 0 segundos.
Etiqueta da consola Duração máxima da repetição
Sinalização da CLI --max-retry-duration
Campo da API maxRetryDuration

Duração mínima do recuo

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

Descrição

Uma duração em segundos com até nove dígitos fracionários, que termina com "s", por exemplo, "3,5 s".

Predefinição A predefinição é 5 segundos.
Etiqueta da consola Duração mínima da repetição
Sinalização da CLI --min-backoff
Campo da API minBackoffDuration

Duração máxima do recuo

O período máximo de tempo de espera antes de tentar novamente uma tarefa após a falha.

Descrição

Uma duração em segundos com até nove dígitos fracionários, que termina com "s", por exemplo, "3,5 s".

Predefinição A predefinição é 3600 segundos (1 hora).
Etiqueta da consola Duração máxima da suspensão
Sinalização da CLI --max-backoff
Campo da API maxBackoffDuration

Duplicações máximas

Número máximo de vezes que o intervalo entre novas tentativas de tarefas com falhas é duplicado antes de o aumento se tornar constante.

Descrição O tempo entre novas tentativas é duplicado maxDoublings vezes.

O intervalo de repetição de uma tarefa começa em minBackoffDuration, depois duplica maxDoublings vezes, aumenta linearmente e, por fim, tenta novamente em intervalos de maxBackoffDuration até retryCount vezes. Por exemplo:

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

  1. A tarefa vai ser repetida primeiro em 10 segundos.
  2. O intervalo de repetição vai duplicar três vezes.
  3. O intervalo de repetição aumenta linearmente em 2^3 * 10 s.
  4. Se aplicável, a tarefa é repetida em intervalos de maxBackoffDuration até que a tarefa seja tentada retryCount vezes (até um máximo de 5 vezes).

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

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

  1. A tarefa vai ser repetida primeiro em 10 segundos.
  2. O intervalo de repetição é duplicado duas vezes.
  3. O intervalo de repetição aumenta linearmente em 2^3 * 10 s.
  4. Se aplicável, a tarefa é repetida em intervalos de maxBackoffDuration até que a tarefa seja tentada retryCount vezes (até um máximo de 5 vezes).

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

Predefinição A predefinição é 5.
Etiqueta da consola Duplicações máximas
Sinalização da CLI --max-doublings
Campo da API maxDoublings

Voltar a tentar exemplos

Os exemplos seguintes demonstram o comportamento de repetição quando uma tarefa do Cloud Scheduler não é concluída com êxito.

Se retryCount e maxRetryDuration não estiverem definidos

Ambas as definições têm o valor predefinido 0 e a tarefa não é repetida.

Tenha em atenção que o Cloud Scheduler tenta executar o trabalho na próxima hora de execução agendada.

Se retryCount e maxRetryDuration estiverem definidos

A tarefa vai ser repetida, pelo menos, retryCount vezes até atingir maxRetryDuration.

Tenha em atenção que a tarefa pode ser repetida mais vezes do que o valor de retryCount.

Se retryCount estiver definido e maxRetryDuration não estiver definido

A predefinição da definição maxRetryDuration é 0 e a tarefa vai ser repetida exatamente retryCount vezes.

Se retryCount não estiver definido e maxRetryDuration estiver definido

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