查看 Application Integration 支援的連接器。
工作錯誤處理策略
工作錯誤處理策略會指定在工作因暫時性錯誤而失敗時,應採取的動作。
設定錯誤處理策略
如要為工作設定錯誤處理策略,請按照下列步驟操作:
- 在整合服務編輯器中按一下現有任務。系統隨即會顯示工作設定窗格。
- 在工作設定窗格中,展開「錯誤處理」部分。下圖顯示「錯誤處理」部分:
在「錯誤處理」部分,按照下列步驟操作:
- 如要新增失敗政策,請按一下「+ 新增失敗政策」。如果設定了多項條件失敗政策,系統會依序檢查及比對這些政策。
- 在「重試策略」欄位中,選取要使用的錯誤處理策略。如需策略清單,請參閱「重試策略」。
- 在「Retry condition」欄位中,輸入必須與錯誤相符的條件,才能執行這個錯誤策略。舉例來說,如果要針對呼叫 REST 端點任務,在錯誤代碼與
404
相符時執行錯誤策略,請輸入以下內容: 如要瞭解如何新增這些條件,請參閱「重試條件」。$`ErrorInfo.code`$ = 404
- 在「預設錯誤政策」部分中,新增在沒有任何符合條件的失敗政策時必須套用的預設政策。預設失敗政策為選用項目。
- 在「錯誤擷取器」部分,為整合新增「錯誤擷取器」。
- 如要新增失敗政策,請按一下「+ 新增失敗政策」。如果設定了多項條件失敗政策,系統會依序檢查及比對這些政策。
重試策略
下表說明可用於工作任務的不同錯誤處理策略:
策略類型 | 說明 |
---|---|
Fatal | 停止執行整個整合作業,並將執行狀態標示為「失敗」。 |
略過 | 忽略工作失敗。假設失敗的工作已成功,整合作業會繼續執行下一個工作。 |
無 | 停止執行工作,並將整合狀態標示為「失敗」。如果有通往最終工作的替代路徑 (葉節工作),系統會執行替代路徑中的任務。如果替代路徑中的所有工作都順利執行,系統會將整合狀態標示為「Succeeded」。 |
重新啟動整合作業,並使用延遲機制 | 從第一個工作執行整個整合作業。不過,工作可能會再次失敗。為避免重複失敗,請在「重試間隔 (以秒為單位)」欄位中指定重啟間隔時間,並在「重試次數上限」欄位中指定允許的重啟嘗試次數。 |
以指數輪詢方式重試工作 | 從失敗的工作執行整合作業。如果工作在重試期間失敗,每次重試之間的時間間隔會以 2 的冪次方增加。延遲時間會增加 1 到 5 秒,並加入到回退時間。 舉例來說,如果指定的重試間隔為 3 秒,則第一次重試會在 3 秒後發生。第二次重試會在 9 秒後執行,第三次重試會在 81 秒後執行,以此類推。這個程序會持續執行,直到重試次數達到上限或工作成功為止 (以先發生者為準)。 |
以固定間隔重試工作 | 從失敗的工作執行整合作業。如果工作在重試期間失敗,每次重試之間的時間間隔會保持不變。 舉例來說,如果指定的重試間隔為 3 秒,系統就會每隔 3 秒重試一次。這個程序會持續執行,直到重試次數達到上限或工作成功為止 (以先發生者為準)。 |
以線性輪詢方式重試工作 | 從失敗的工作執行整合作業。如果工作在重試期間失敗,每次重試之間的時間間隔會以線性方式增加。延遲時間會增加 1 到 5 秒,並加入到回退時間。 舉例來說,如果指定的重試間隔為 3 秒,則第一次重試會在 3 秒後發生。系統會在 6 秒後進行第二次重試,在 9 秒後進行第三次重試,以此類推。這個程序會持續執行,直到重試次數達到上限或工作成功為止 (以先發生者為準)。 |
輪詢重試
每個專案和區域的並行執行限制預設為 50 次。失敗的執行作業會排入佇列,並使用指數輪詢演算法重試,每次重試之間的等待時間會逐漸增加,最多可達 10 次。例如:
- 執行整合作業。
- 如果要求失敗,請等待 10 分鐘後再重試要求。
- 如果要求失敗,請等待 20 分鐘後再重試要求。
- 如果要求失敗,請等待 40 分鐘後再重試要求。
- 依此類推,重試次數上限為 10 次。
重試條件
重試條件會指定必須符合的條件,系統才能執行錯誤處理策略。下表說明可在重試條件中使用的支援運算子和函式:
支援的運算子
下表說明重試條件中支援的運算子。
運算子 | 說明 | 示例 |
= | 檢查兩個值是否相等 | $var$ = "value" |
!= | 檢查兩個值之間是否不相等 | $var$ != "value" |
< | 檢查值是否小於另一個值 | 5 < 10 |
<= | 檢查值是否小於或等於另一個值 | $var$ <= 5 |
> | 檢查某個值是否大於另一個值 | 1 > 0 |
>= | 檢查值是否大於或等於另一個值 | $var$ >= 0 |
: | 檢查字串是否包含子字串,或檢查清單是否包含特定原始值。 |
|
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 陣列以外的陣列變數類型。 |