작업 다시 시도

기본적으로 Cloud Scheduler 작업이 핸들러로부터 확인을 받지 못하면 작업이 실패한 것으로 간주되며 구성한 지수 백오프에 따라 재시도됩니다. Cloud Scheduler 작업을 만들거나 업데이트할 때 다음과 같은 방법으로 이 재시도 동작을 결정할 수 있습니다.

설정 재시도

다음 표에서는 구성할 수 있는 재시도 설정을 설명합니다.

최대 재시도 횟수

maxDoublings에 설명된 지수 백오프 절차를 사용하여 시스템에서 작업을 실행하려고 시도하는 횟수입니다.

설명

retryCount이 0이 아닌 숫자로 설정된 경우 Cloud Scheduler는 작업이 성공하거나 재시도 횟수가 소진될 때까지 지수 백오프를 사용하여 실패한 작업을 retryCount번 재시도합니다. 이 시간까지 재시도가 계속되면 다음 예약된 실행 시간이 건너뛸 수 있습니다.

retryCount이 0인 경우 (maxRetryDuration도 0인 경우) 작업 시도가 실패해도 다시 시도되지 않습니다. 대신 Cloud Scheduler는 다음 예약된 실행 시간을 기다립니다.

5보다 큰 값과 음수 값은 허용되지 않습니다.

기본값 기본값은 0입니다.
콘솔 라벨 최대 재시도 횟수
CLI 플래그 --max-retry-attempts
API 필드 retryCount

최대 재시도 시간

실패한 작업을 재시도하기 위한 시간 제한으로, 실행이 처음 시도된 시점부터 측정됩니다. retryCount와 함께 지정하면 두 한도에 모두 도달할 때까지 작업이 재시도됩니다.

설명

초 단위 기간으로, 소수점 아래 9자리까지 지정 가능하며 's'로 끝납니다(예: '3.5s').

기간이 0이면 재시도 기간이 무제한임을 의미합니다. 하지만 retryCount도 0이면 작업 시도가 실패해도 재시도되지 않습니다.

기본값 기본값은 0초입니다.
콘솔 라벨 최대 재시도 시간
CLI 플래그 --max-retry-duration
API 필드 maxRetryDuration

최소 백오프 지속 시간

작업이 실패한 후 다시 시도하기 전에 대기할 최소 시간입니다.

설명

초 단위 기간으로, 소수점 아래 9자리까지 지정 가능하며 's'로 끝납니다(예: '3.5s').

기본값 기본값은 5초입니다.
콘솔 라벨 최소 백오프 지속 시간
CLI 플래그 --min-backoff
API 필드 minBackoffDuration

최대 백오프 지속 시간

작업이 실패한 후 다시 시도하기 전에 대기할 최대 시간입니다.

설명

초 단위 기간으로, 소수점 아래 9자리까지 지정 가능하며 's'로 끝납니다(예: '3.5s').

기본값 기본값은 3,600초 (1시간)입니다.
콘솔 라벨 최대 백오프 지속 시간
CLI 플래그 --max-backoff
API 필드 maxBackoffDuration

최대 더블링

실패한 작업 재시도 사이의 간격이 두 배가 되는 최대 횟수입니다. 이 횟수 이후에는 증분 값이 상수가 됩니다.

설명 재시도 간 대기 시간으로 maxDoublings배 증가합니다.

작업의 재시도 간격은 minBackoffDuration에서 시작하여 maxDoublings회 동안 두 배로 증가한 후 선형으로 증가하고 최종적으로 maxBackoffDuration 간격으로 최대 retryCount회 재시도합니다. 예를 들면 다음과 같습니다.

minBackoffDuration이 10초이고 maxBackoffDuration이 300초이고 maxDoublings이 3인 경우:

  1. 작업이 10초 후에 다시 시도됩니다.
  2. 재시도 간격이 3배로 늘어납니다.
  3. 그러면 재시도 간격이 2^3 * 10초만큼 선형으로 증가합니다.
  4. 해당하는 경우 작업이 retryCount회 시도될 때까지 (최대 5회) maxBackoffDuration 간격으로 재시도됩니다.

따라서 요청은 10초, 20초, 40초, 80초, 160초에 재시도됩니다.

minBackoffDuration이 10초이고 maxBackoffDuration이 120초이며 maxDoublings이 2인 경우:

  1. 작업이 10초 후에 다시 시도됩니다.
  2. 재시도 간격이 두 번 두 배로 늘어납니다.
  3. 그러면 재시도 간격이 2^3 * 10초만큼 선형으로 증가합니다.
  4. 해당하는 경우 작업이 retryCount회 시도될 때까지 (최대 5회) maxBackoffDuration 간격으로 재시도됩니다.

따라서 요청은 10초, 20초, 40초, 120초, 120초에 재시도됩니다.

기본값 기본값은 5입니다.
콘솔 라벨 최대 더블링
CLI 플래그 --max-doublings
API 필드 maxDoublings

재시도 예시

다음 예에서는 Cloud Scheduler 작업이 성공적으로 완료되지 않을 때 재시도 동작을 보여줍니다.

retryCountmaxRetryDuration가 모두 설정되지 않은 경우

두 설정 모두 기본값이 0이며 작업이 전혀 다시 시도되지 않습니다.

Cloud Scheduler는 다음 예약된 실행 시간에 작업을 실행하려고 시도합니다.

retryCountmaxRetryDuration가 모두 설정된 경우

작업은 maxRetryDuration에 도달할 때까지 최소 retryCount회 재시도됩니다.

작업이 retryCount보다 더 많이 재시도될 수 있습니다.

retryCount이 설정되고 maxRetryDuration이 설정되지 않은 경우

maxRetryDuration 설정은 기본적으로 0으로 설정되며 작업은 정확히 retryCount번 재시도됩니다.

retryCount이 설정되어 있지 않고 maxRetryDuration이 설정된 경우

작업은 최대 5회까지 또는 maxRetryDuration에 도달할 때까지 여러 번 재시도됩니다.