使用 Wait 節點的非同步平行任務管理器 - n8n 工作流程

學習如何使用 n8n 的 Execute Workflow 和 Wait 節點功能來建構高階的非同步 n8n 流程。此範本對於管理 n8n 中長時間運行的平行程序至關重要。

工作流預覽

準備好自動化了嗎?

下載此 n8n 工作流程範本並立即開始使用。

適用對象

進階 n8n 使用者:需要管理複雜、非線性執行路徑的使用者。
系統整合者:開發需要執行批次處理或 ETL 作業,且涉及等待外部系統回應較長時間的開發者。
效能優化者:希望透過平行執行子任務來提升 n8n 流程處理量的人員。
n8n 自動化專家:探索 n8n Wait 節點及非同步呼叫進階功能的使用者。

總覽

在處理長時間運行的操作時——例如影片處理、複雜的資料運算,或是需要輪詢 (polling) 的 API 呼叫——標準的線性 n8n 流程可能會被卡住,導致逾時或消耗過多的執行時間。這個專用的 n8n 流程透過利用非同步模式來解決這個問題。

這個穩健的 n8n 範本使用 Execute Workflow n8n 節點來觸發平行的子任務(稱為 worker),並使用強大的 Wait n8n 節點來暫停主協調器 (orchestrator),直到這些子任務完成並透過唯一的 webhook 回報結果。這樣能讓主執行緒有效率地等待,同時管理眾多平行執行緒、最大化資源利用率,並避免逾時。如果您正在尋找用於高效能自動化的可靠 n8n 範本,這種非同步設計是至關重要的。

運作方式

此 n8n 流程以兩種不同的模式運作:協調器 (Orchestrator/主流程) 和工作執行緒 (Worker/子流程),利用對相同 n8n 流程定義的遞迴呼叫。

協調器流程 (啟動與收集)


  1. Start n8n 觸發器: 程序從 Start 手動 n8n 觸發器開始。

  2. 平行執行: n8n 流程立即分支出來,使用兩個 Execute Workflow 節點(Call 1Call 2)。關鍵在於,waitForSubWorkflow 參數設定為 false,使呼叫成為非阻擋性(非同步)。

  3. 傳遞恢復細節: 每次呼叫都會向 worker 傳遞特定的參數(wait 持續時間和唯一的 webhook 後綴)。Webhook URL 是主 n8n 執行緒的 resumeUrl,允許 worker 回撥。

  4. 等待結果: 主 n8n 流程接著會遇到兩個專用的 Wait n8n 節點(Wait for Webhook 1Wait for Webhook 2)。執行會無限期(或設定上限)暫停,直到 worker 流程成功呼叫各自的 Webhook 端點(/call1/call2)。

  5. 合併與彙總: 一旦兩個平行任務回報了結果,Merge n8n 節點會合併資料負載 (payloads),然後 Sum n8n 節點會計算平行操作的總結果。

工作執行緒流程 (任務模擬與回報)


  1. Worker 觸發器: 當被協調器呼叫時,子流程會透過 Call Entry Point n8n 觸發器(一個 Execute Workflow 觸發器)啟動。

  2. 模擬長時間任務: Wait Seconds n8n 節點會根據協調器要求的持續時間暫停流程(例如,Call 1 暫停 5 秒,Call 2 暫停 3 秒),以模擬長時間運行的任務。

  3. 回報結果: Request Webhook n8n 節點會使用輸入的 webhook URL,向主 n8n 流程的 Wait n8n 節點傳送一個 HTTP 請求。此呼叫攜帶了計算出的結果,通知主流程恢復執行。

安裝指南

若要部署此 n8n 範本並運用此平行處理技術,請遵循以下步驟:


  1. 匯入: 複製提供的 JSON 資料,並透過 n8n 實例中的「新增 (New)」選單 >「從 JSON 匯入 (Import from JSON)」直接匯入。單次匯入即定義了協調器和工作執行緒的邏輯。

  2. 自我參照檢查: 由於此 n8n 流程會遞迴呼叫自身,請確認 Call 1Call 2Execute Workflow n8n 節點中的 workflowId 參數指向剛匯入之流程的 ID。它應該會自動偵測到自我參照,但若執行失敗,請務必檢查。

  3. 憑證: 此特定的 n8n 流程使用基礎的 n8n 節點(Manual TriggerWaitExecute WorkflowHTTP Request),不需要外部憑證。

  4. 執行: 手動執行 Start n8n 觸發器。觀察流程如何分割、非同步執行定時任務,然後等待 Webhook 回傳以恢復並完成加總。

節點詳情

Start (n8n 觸發器): 使用 Manual Trigger 手動 n8n 觸發器,僅用於啟動主協調器 n8n 流程以進行測試。
Call Entry Point (n8n 觸發器): 專門處理來自主流程呼叫的 Execute Workflow Trigger。它會接收 worker 任務所需的 wait(數字)和 webhook(字串)參數。
Call 1 / Call 2 (Execute Workflow n8n 節點): 這些節點對於平行化至關重要。它們呼叫相同的 n8n 流程(即本範本),但配置為 waitForSubWorkflow: false 以確保非同步執行。它們會傳遞唯一的 wait 時間和完整的恢復 Webhook URL。
Wait Seconds (Wait n8n 節點): 位於 Worker 路徑中,此 n8n 節點會暫停流程一段動態時間,其時間由輸入參數 ={{ $('Call Entry Point').item.json.wait }} 定義。
Request Webhook (HTTP Request n8n 節點): Worker 流程的最後一步。它動態請求協調器提供的 resumeUrl={{ $('Call Entry Point').item.json.webhook }}),攜帶計算結果的資料負載,以恢復主 n8n 流程。
Wait for Webhook 1 / Wait for Webhook 2 (Wait n8n 節點): 位於協調器路徑中,這些節點會暫停執行,專門等待匹配的 Webhook 呼叫(使用類似 /call1/call2 的後綴)傳遞非同步結果,然後 n8n 流程才能繼續。


  • Merge / Sum (n8n 節點): 標準的聚合節點,用於合併 Wait 節點收到的結果並計算最終總和,以展示非同步資料收集的成功。

相關 n8n 工作流程

免費

節點: 8 節點
更新时间: 2025年12月26日

精選*