AI活用

n8nで大量データを順番に処理する|Loop・待機・処理件数の管理

n8nのLoop Over Itemsで処理件数と順序を管理する方法。自動で複数itemを処理するノードとの違い、API上限から決める待機、途中停止からの再開を整理します。

この記事の目次
  1. 複数itemを渡すだけでよいノードもある
  2. 十件の試験から、一件ずつの処理を組む
  3. 待機時間は、対象APIの制限から決める
  4. 途中で止まっても、最初から全部を送らない
  5. 次に知りたいこと

n8nで件数を増やす前に、ノードが複数itemを処理する動きと、一回に扱う件数を分けて確認します。すべてにLoopを追加するのではなく、外部APIの上限や順序の必要性から処理単位を選びます。

複数itemを渡すだけでよいノードもある

多くのn8nノードは、受け取った複数itemを処理します。一件の試験から十件へ増やす際に、まず入力と出力の件数を確認してください。ノードによって例外があるため、すべてが同じ動きだとは考えないようにします。

Loop Over Items(Split in Batches)は、入力を決めた件数ずつ後続へ渡すために使います。動作と例外は公式Loop Over Itemsで確認できます。

スポンサーリンク

十件の試験から、一件ずつの処理を組む

  1. 架空のIDを十件用意し、Loop Over Itemsへ渡す。
  2. Batch Sizeを1にし、loop側へ一件を処理するノードをつなぐ。
  3. 外部APIへの間隔が必要なら、適切な待機を加えてループへ戻す。
  4. done側で、処理を終えた件数と失敗件数を確認する。

loop側とdone側を取り違えると、まとめて行いたい完了通知を一件ごとに送るなど、意図と違う動きになります。最初は外部送信を外し、IDの記録だけで順序を読みます。

待機時間は、対象APIの制限から決める

一律に1秒待てば安全、とは限りません。APIの制限が一秒単位か一分単位か、契約・ユーザー・IPのどこに適用されるかを確認します。他のworkflowも同じアカウントを使う場合、その呼び出し分も合計されます。

制約 考える対処
一定時間の呼び出し数 件数と待機を制限し、429の案内も確認する
一回の本文サイズ 一件の大きさも測り、件数だけで区切らない
順序を守る更新 同じ対象IDの処理が重ならない構成にする

途中で止まっても、最初から全部を送らない

処理済みID、失敗したID、結果不明のIDを残します。外部では成功したのに記録が間に合わなかった処理は、再送前に照合します。件数が多いほど、この区別が復旧時間へ効きます。

ループを繰り返す条件を自分で作る場合は、終了条件と上限も用意します。毎回同じ入力を初期化し直す構成では終わらないことがあります。十件で最後まで進むことを見た後、少しずつ件数を増やしてください。重複の扱いは二重実行の防止へ分担します。

スポンサーリンク