ジョブを再試行する

デフォルトでは、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 回 2 倍になり、その後は直線的に増加します。最終的な再試行間隔は maxBackoffDuration で、retryCount 回まで再試行が発生します。次に例を示します。

minBackoffDuration が 10 秒、maxBackoffDuration が 300 秒、maxDoublings が 3 の場合:

  1. ジョブはまず 10 秒後に再試行されます。
  2. 再試行間隔は 3 回 2 倍になります。
  3. 再試行間隔は 2^3 * 10 秒ずつ線形に増加します。
  4. 該当する場合、ジョブは maxBackoffDuration の間隔で再試行され、ジョブが retryCount 回試行されるまで(最大 5 回)繰り返されます。

したがって、リクエストは 10 秒、20 秒、40 秒、80 秒、160 秒で再試行されます。

minBackoffDuration が 10 秒、maxBackoffDuration が 120 秒、maxDoublings が 2 の場合:

  1. ジョブはまず 10 秒後に再試行されます。
  2. 再試行間隔は 2 回 2 倍になります。
  3. 再試行間隔は 2^3 * 10 秒ずつ線形に増加します。
  4. 該当する場合、ジョブは maxBackoffDuration の間隔で再試行され、ジョブが retryCount 回試行されるまで(最大 5 回)繰り返されます。

したがって、リクエストは 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 が設定されている場合

ジョブは、maxRetryDuration に達するまで、任意の回数(最大 5 回)再試行されます。