當處理大量請求時,我的工作流程開始收到來自 API 提供商的速率限制錯誤。在 n8n 中處理這個問題的最佳方法是什麼?
描述問題/錯誤/問題
錯誤訊息是什麼(如果有的話)?
請分享您的工作流程
(選擇畫布上的節點,並使用鍵盤快速鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製和貼上工作流程。)
分享最後一個節點傳回的輸出
您的 n8n 設定資訊
- n8n 版本:
- 資料庫(預設值:SQLite):
- n8n EXECUTIONS_PROCESS 設定(預設值:own、main):
- 透過以下方式執行 n8n(Docker、npm、n8n cloud、桌面應用程式):
- 作業系統:
@Victory1 內建的方式是使用 HTTP Request 節點的 Batching 選項,裡面有完全符合你需求的設定。在節點上點擊 Add Option > Batching,然後設定 Items per Batch 和 Batch Interval (ms) 來控制呼叫的速度。例如,如果 API 允許每秒一個請求,就把 Items per Batch 設為 1,Batch Interval 設為 1000,這樣可以把請求間隔開來,就不會觸發限制了(基本上就是把 Loop Over Items + Wait 烤進同一個節點裡)。然後在節點設定裡開啟 Retry On Fail,並設定重試之間的等待時間,這樣偶爾漏掉的 429 錯誤就會在暫停後自動重試,而不是讓整個流程失敗。你的提供商實際的限制是多少呢,是每秒的請求數還是每分鐘的?我可以告訴你確切的數字來設定。
實施延遲、批次處理或重試邏輯,以減少在短時間內發送的請求數量。
大多數 API 都會記錄其速率限制,因此在工作流程中圍繞這些限制進行設計可以防止失敗。