工作錯誤處理策略 (original) (raw)

下表說明您可以對工作採取的不同錯誤處理策略:

策略類型 說明
嚴重 停止執行整個整合作業,並將執行狀態標示為「失敗」。
略過 忽略工作失敗情形。整合會繼續執行後續工作,並假設失敗的工作已成功
停止執行工作,並將整合狀態標示為「失敗」。如果最終工作 (葉子工作) 有替代路徑,系統會執行替代路徑中的工作。如果替代路徑中的所有工作都順利執行,系統會將整合狀態標示為「成功」。
重新啟動整合功能 (含退避機制) 從第一個工作開始執行整個整合程序。不過,工作可能會再次失敗。為避免重複失敗,請在「重試間隔 (秒)」欄位中指定重新啟動間隔時間,並在「重試次數上限」欄位中指定允許的重新啟動嘗試次數。
以指數輪詢方式重試工作 從失敗的工作執行整合。如果工作在重試期間失敗,每次重試嘗試之間的時間間隔會以 2 的次方增加。延遲時間會加到退避時間中,延遲時間為 1 到 5 秒。 舉例來說,如果指定的重試間隔為 3 秒,第一次重試會在 3 秒後進行。第二次重試會在 9 秒後進行,第三次重試會在 81 秒後進行,依此類推。這個程序會持續進行,直到達到重試次數上限或工作成功為止 (以先發生者為準)。
以固定間隔重試工作 從失敗的工作執行整合。如果工作在重試期間失敗,每次重試嘗試之間的時間間隔會維持不變。 舉例來說,如果指定的重試間隔為 3 秒,系統就會每隔 3 秒重試一次。這個程序會持續進行,直到達到重試次數上限或工作成功為止 (以先發生者為準)。
Retry task with linear backoff 從失敗的工作執行整合。如果工作在重試期間失敗,每次重試嘗試之間的時間間隔會線性增加。延遲時間會加到退避時間中,介於 1 到 5 秒之間。 舉例來說,如果指定的重試間隔為 3 秒,第一次重試會在 3 秒後進行。第二次重試會在 6 秒後進行,第三次重試會在 9 秒後進行,依此類推。這個程序會持續進行,直到達到重試次數上限或工作成功為止 (以先發生者為準)。

輪詢重試

每個專案和地區的預設並行限制為 50 次執行。系統會將失敗的執行作業排入佇列,並使用指數輪詢演算法重試,每次重試之間的等待時間會逐漸增加,最多重試 10 次。例如:

  1. 執行整合。
  2. 如果要求失敗,請等待 10 分鐘後再重試要求。
  3. 如果要求失敗,請等待 20 分鐘後再重試要求。
  4. 如果要求失敗,請等待 40 分鐘後再重試要求。
  5. 依此類推,最多重試 10 次。

重試條件

重試條件會指定必須符合的條件,錯誤處理策略才會執行。下表說明重試條件中支援的運算子和函式:

支援的運算子

下表說明重試條件中可使用的支援運算子。

運算子 說明 範例
= 檢查兩個值是否相等 varvarvar = "value"
!= 檢查兩個值是否不相等 varvarvar != "value"
< 檢查某個值是否小於另一個值 5 < 10
<= 檢查某個值是否小於或等於另一個值 varvarvar <= 5
> 檢查某個值是否大於另一個值 1 > 0
>= 檢查某個值是否大於或等於另一個值 varvarvar >= 0
檢查字串是否包含子字串,或檢查清單是否包含特定原始值。 longStringlongStringlongString : "substring" listofvalueslist of valueslistofvalues : "value"
AND 檢查兩個運算式,如果兩個運算式的計算結果都為 true,則傳回 true。 aaa > bbb AND bbb < ccc
檢查兩個運算式,如果其中一個運算式的計算結果為 true,則傳回 true。 aaa > bbb OR bbb < ccc
NOT 否定運算子。反轉運算式的結果。 NOT($var$ = "value")

支援的函式

下表說明重試條件中可用的支援函式。

功能 說明
exists(VARIABLE) 檢查指定變數是否存在
does_not_exist(VARIABLE) 檢查指定變數是否存在
is_empty(VARIABLE) 檢查指定變數是否為清單且為空白。支援陣列變數類型,但 JSON 陣列除外。
is_not_empty(VARIABLE) 檢查指定變數是否為清單且不為空白。支援陣列變數類型,但 JSON 陣列除外。