查看 Application Integration 支援的連接器

工作錯誤處理策略

工作錯誤處理策略會指定在工作因暫時性錯誤而失敗時,應採取的動作。

設定錯誤處理策略

如要為工作設定錯誤處理策略,請按照下列步驟操作:

  1. 在整合服務編輯器中按一下現有任務。系統隨即會顯示工作設定窗格。
  2. 在工作設定窗格中,展開「錯誤處理」部分。下圖顯示「錯誤處理」部分:

    錯誤處理策略 錯誤處理策略

    在「錯誤處理」部分,按照下列步驟操作:

    1. 如要新增失敗政策,請按一下「+ 新增失敗政策」。如果設定了多項條件失敗政策,系統會依序檢查及比對這些政策。
      1. 在「重試策略」欄位中,選取要使用的錯誤處理策略。如需策略清單,請參閱「重試策略」。
      2. 在「Retry condition」欄位中,輸入必須與錯誤相符的條件,才能執行這個錯誤策略。舉例來說,如果要針對呼叫 REST 端點任務,在錯誤代碼與 404 相符時執行錯誤策略,請輸入以下內容:
        $`ErrorInfo.code`$ = 404
        如要瞭解如何新增這些條件,請參閱「重試條件」。
    2. 在「預設錯誤政策」部分中,新增在沒有任何符合條件的失敗政策時必須套用的預設政策。預設失敗政策為選用項目。
    3. 在「錯誤擷取器」部分,為整合新增「錯誤擷取器」

如要瞭解錯誤代碼和錯誤處理,請參閱「錯誤處理

重試策略

下表說明可用於工作任務的不同錯誤處理策略:

策略類型 說明
Fatal 停止執行整個整合作業,並將執行狀態標示為「失敗」
略過 忽略工作失敗。假設失敗的工作已成功,整合作業會繼續執行下一個工作。
停止執行工作,並將整合狀態標示為「失敗」。如果有通往最終工作的替代路徑 (葉節工作),系統會執行替代路徑中的任務。如果替代路徑中的所有工作都順利執行,系統會將整合狀態標示為「Succeeded」
重新啟動整合作業,並使用延遲機制 從第一個工作執行整個整合作業。不過,工作可能會再次失敗。為避免重複失敗,請在「重試間隔 (以秒為單位)」欄位中指定重啟間隔時間,並在「重試次數上限」欄位中指定允許的重啟嘗試次數。
以指數輪詢方式重試工作 從失敗的工作執行整合作業。如果工作在重試期間失敗,每次重試之間的時間間隔會以 2 的冪次方增加。延遲時間會增加 1 到 5 秒,並加入到回退時間。

舉例來說,如果指定的重試間隔為 3 秒,則第一次重試會在 3 秒後發生。第二次重試會在 9 秒後執行,第三次重試會在 81 秒後執行,以此類推。這個程序會持續執行,直到重試次數達到上限或工作成功為止 (以先發生者為準)。

以固定間隔重試工作 從失敗的工作執行整合作業。如果工作在重試期間失敗,每次重試之間的時間間隔會保持不變。

舉例來說,如果指定的重試間隔為 3 秒,系統就會每隔 3 秒重試一次。這個程序會持續執行,直到重試次數達到上限或工作成功為止 (以先發生者為準)。

以線性輪詢方式重試工作 從失敗的工作執行整合作業。如果工作在重試期間失敗,每次重試之間的時間間隔會以線性方式增加。延遲時間會增加 1 到 5 秒,並加入到回退時間。

舉例來說,如果指定的重試間隔為 3 秒,則第一次重試會在 3 秒後發生。系統會在 6 秒後進行第二次重試,在 9 秒後進行第三次重試,以此類推。這個程序會持續執行,直到重試次數達到上限或工作成功為止 (以先發生者為準)。

輪詢重試

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

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

重試條件

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

支援的運算子

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

運算子 說明 示例
= 檢查兩個值是否相等 $var$ = "value"
!= 檢查兩個值之間是否不相等 $var$ != "value"
< 檢查值是否小於另一個值 5 < 10
<= 檢查值是否小於或等於另一個值 $var$ <= 5
> 檢查某個值是否大於另一個值 1 > 0
>= 檢查值是否大於或等於另一個值 $var$ >= 0
: 檢查字串是否包含子字串,或檢查清單是否包含特定原始值。

$longString$ : "substring"

$list of values$ : "value"

AND 檢查兩個運算式,如果兩個運算式的計算結果都是 true,則傳回 true。 $a$ > $b$ AND $b$ < $c$
檢查兩個運算式,如果其中任何一個運算式的計算結果為 true,則傳回 true。 $a$ > $b$ OR $b$ < $c$
錯誤說法 否定運算子。翻轉運算式的結果。 NOT($var$ = "value")

支援的函式

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

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