Home / FAQs / n8n工作流自動化與系統整合
QUESTION & ANSWER

n8n工作流失敗後如何重試和補償?

不能把所有失敗都簡單重複執行。網路超時、限流、引數錯誤、許可權不足和業務拒絕需要不同處理;涉及建立訂單、付款、發訊息等動作時,盲目重試可能造成重複結果。生產工作流應設計業務唯一鍵、步驟狀態、有限重試、退避、死信或人工佇列、補償動作和對賬機制,並讓每次執行都能追溯到原始事件。

直接回答

先給出可以用於決策的結論

先給每個業務事件分配穩定唯一標識,並在寫入前查詢或記錄處理狀態。對連線超時、臨時限流等可恢復錯誤採用有限次數和指數退避;對欄位缺失、許可權不足和業務規則拒絕,不應自動重複,而是進入可讀的異常佇列。跨系統流程需記錄每一步的外部編號、請求摘要和結果,部分成功時根據業務決定繼續、撤銷、人工確認或補寫。補償不一定是技術上的反向操作,例如已經傳送的郵件無法真正收回,可能需要傳送更正並通知負責人。關鍵流程還要有定時對賬,發現工作流認為成功但目標系統實際未落賬的情況。

DECISION FACTORS

判斷前需要確認哪些條件

同一個問題在不同企業、資料和專案階段下可能有不同答案。建議先核對以下條件,再把網上的通用結論代入自己的專案。

動作是否冪等、可撤銷或涉及不可逆承諾錯誤屬於臨時技術故障還是業務資料問題目標系統是否提供請求狀態和業務唯一鍵查詢人工應在什麼時間、用什麼資訊介入
ACTION STEPS

建議按什麼順序推進

01

先明確目標與邊界

為事件、業務物件和每個寫入動作建立唯一鍵。

02

驗證關鍵依賴

按錯誤型別配置重試、停止、補償或人工佇列。

03

形成可評審成果

儲存步驟狀態、外部編號、輸入摘要和錯誤原因。

04

用真實結果決定下一步

透過故障注入與定時對賬驗證最終一致性。

PRACTICAL EXAMPLE

放到實際業務中如何理解

示例用於說明判斷方法

工作流在ERP建立訂單後等待響應超時。系統不能立即再次建立,而應使用客戶訂單號查詢ERP是否已有記錄;若已存在則繼續後續步驟,若確認不存在才重試。若ERP成功但CRM更新失敗,應保留ERP訂單號並補寫CRM,而不是回滾或重複整個流程。 示例不代表特定客戶業績,實際結論需要結合企業自己的業務量、樣本、系統和責任邊界驗證。

COMMON RISKS

最容易踩的坑

所有節點統一設定無限重試

只記錄技術錯誤,沒有業務物件和外部編號

部分成功後從頭重跑整個工作流

ACCEPTANCE

最終應該怎樣驗收或確認

測試應主動製造重複事件、超時、限流、許可權不足、欄位錯誤和部分成功,驗證不會產生重複業務記錄;異常能夠進入正確佇列,告警包含可處理資訊,補償與對賬結果均有審計證據。

準備與供應商或內部團隊溝通時,建議帶上當前流程、代表性樣本、現有系統、計劃時間和預算等級。先把未知項明確標註,再決定採用診斷、PoC、固定範圍專案或持續研發,通常比直接索要一個缺少邊界的價格和工期更可靠。

你的專案條件與上面的示例不同?

可以先整理業務目標、現有系統、樣本與計劃時間,再由顧問結合實際邊界給出初步判斷。

聯絡專案顧問