重試工作

根據預設,如果 Cloud Scheduler 工作未收到處理常式的確認訊息,系統就會將工作視為失敗,並根據您設定的指數輪詢重試工作。建立或更新 Cloud Scheduler 工作時,您可以透過下列方式決定重試行為:

重試設定

下表說明可設定的重試設定。

重試次數上限

系統會嘗試使用 maxDoublings 所述的指數輪詢程序執行工作的次數。

說明

如果 retryCount 設為非零數字,Cloud Scheduler 會使用指數輪詢,重試失敗的工作 retryCount 次,直到工作成功或重試次數用盡為止。請注意,如果重試次數持續到下一個排定的執行時間,系統可能會略過該時間。

如果 retryCount 為 0 (且 maxRetryDuration 也為 0),則系統「不會在工作嘗試失敗時重試」。而是等待下一個排定的執行時間。

值不得大於 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. 重試間隔隨後會以線性方式增加 2^3 * 10 秒。
  4. 如果適用,工作會以 maxBackoffDuration 間隔重試,直到工作嘗試次數達到 retryCount 次為止 (最多 5 次)。

因此,要求會在 10 秒、20 秒、40 秒、80 秒和 160 秒後重試。

如果 minBackoffDuration 為 10 秒、maxBackoffDuration 為 120 秒,且 maxDoublings 為 2:

  1. 系統會先在 10 秒內重試工作。
  2. 重試間隔會加倍兩次。
  3. 重試間隔隨後會以線性方式增加 2^2 * 10 秒。
  4. 如果適用,工作會以 maxBackoffDuration 間隔重試,直到工作嘗試次數達到 retryCount 次為止 (最多 5 次)。

因此,系統會在 10 秒、20 秒、40 秒、80 秒和 120 秒後重試要求。

預設 預設值為 5。
控制台標籤 加倍次數上限
CLI 旗標 --max-doublings
API 欄位 maxDoublings

重試範例

以下範例說明 Cloud Scheduler 工作未順利完成時的重試行為。

如果 retryCount 和 maxRetryDuration 都未設定

這兩項設定的預設值都是 0,工作完全不會重試。

請注意,Cloud Scheduler 會在下一個排定執行時間嘗試執行工作。

如果同時設定 retryCount 和 maxRetryDuration

工作會重試至少 retryCount 次,直到達到 maxRetryDuration 為止。

請注意,工作重試次數可能超過 retryCount。

如果已設定 retryCount,但未設定 maxRetryDuration

maxRetryDuration 設定的預設值為 0,工作會重試 retryCount 次。

如果未設定 retryCount,但已設定 maxRetryDuration

這項工作會重試任意次數 (最多 5 次),或直到達到 maxRetryDuration 為止。