n8n Loop Over Items: Batching ve Otomatik Döngü

n8n'in items'ları otomatik olarak nasıl döngüye aldığı, Loop Over Items node'unun nasıl çalıştığı ve performans ile rate limit için hangi batch boyutunun uygun olduğu.

n8n genellikle birden fazla kaydı tamamen kendi başına işler: bir node bir items listesi alır, mantığını her tek item için çalıştırır ve sonuçları tekrar bir liste olarak döndürür. Çoğu workflow için bu nedenle açık bir döngüye hiç ihtiyacın yoktur. Ancak harici bir servis saniyede yalnızca birkaç isteğe izin verdiğinde, bir node yalnızca ilk item'ı işlediğinde veya sayfa sayısı bilinmeyen sayfalanmış bir API sorgulanması gerektiğinde, otomatik işleme artık yeterli olmaz. Tam olarak bunun için n8n'de, eskiden Split in Batches olarak bilinen Loop Over Items node'u bulunur.

Bu yazıda sana n8n'de otomatik döngünün nasıl çalıştığını, Loop Over Items node'unun ayrıntılı olarak nasıl çalıştığını ve batch boyutu ile performans konusunda nelere dikkat etmen gerektiğini gösteriyoruz, böylece workflow'ların kararlı ve rate limit hatası olmadan çalışır.

n8n Items'ları Otomatik Olarak Nasıl Döngüye Alır

Resmi n8n döngü dokümantasyonuna göre, n8n node'ları temel olarak herhangi bir sayıda item'ı kabul eder, işler ve sonuçları tekrar döndürür. Örneğin beş müşteri kaydı olan bir veri deposu node'unu bir Slack node'una bağlarsan, n8n otomatik olarak beş ayrı mesaj gönderir, kayıt başına bir mesaj. Bunun için kendi döngünü oluşturman gerekmez, bunu arka planda motor üstlenir.

Bunun yerine gelen bir kaydın yalnızca ilk item'ını işlemek istiyorsan, node ayarlarında Settings sekmesi altındaki Execute Once seçeneğini etkinleştirirsin. Böylece node diğer tüm item'ları göz ardı eder ve yalnızca ilk kaydı işler, bu da örneğin tek seferlik bildirimler için uygundur.

Loop Over Items Node'u Ayrıntılı Olarak

Otomatik işlemenin yeterli olmadığı tüm durumlar için n8n, Loop Over Items node'unu sunar. Node, orijinal giriş verilerini saklar ve her çalıştırmada belirlenen sayıda item'ı loop çıkışı üzerinden döndürür. Tüm batch'ler işlendiğinde, işlenen verileri birleştirir ve bunları done çıkışı üzerinden döndürür.

Burada iki ayar merkezi önem taşır:

  • Batch Size: node'un çalıştırma başına kaç item döndüreceğini belirler. Değeri 1 olarak ayarlarsan, n8n her item'ı tek tek, birbiri ardına işler.
  • Reset: her çalıştırmada node'u yeni giriş verileriyle yeniden başlatır. Bu, toplam sayfa sayısının önceden bilinmediği sayfalanmış API sorgularında faydalıdır. Dokümantasyona göre önemli olan: Reset etkinken mutlaka geçerli bir durdurma koşulu eklemen gerekir, aksi takdirde döngü sonsuza kadar devam eder.

Pratikte bunun için, hâlâ item kalıp kalmadığını kontrol etmek üzere `{{$("Loop Over Items").context["noItemsLeft"]}}` gibi ifadeler veya mevcut çalıştırma indeksini okuyup bir IF node'unda durdurma koşulu olarak kullanmak üzere `{{$("Loop Over Items").context["currentRunIndex"]}}` kullanırsın.

Manuel Olarak Ne Zaman Döngü Kurman Gerekir

Dokümantasyona göre bazı node'lar temel olarak yalnızca ilk item'ı veya tüm item'ları bir kerede işler, düzgün bir şekilde yinelemek yerine. Bunlar arasında ekleme ve güncelleme işlemlerinde CrateDB, Microsoft SQL, MongoDB ve TimescaleDB, Code node'u ve "Run Once for All Items" modundaki Execute Workflow node'u, manuel sayfalama durumunda HTTP Request node'u, Redis Info işlemi ve RSS Read node'u bulunur. Bu istisnalar için döngüyü manuel olarak kurarsın: bir node'un çıkışını tekrar önceki bir node'a bağlarsın ve net bir durdurma koşulunu kontrol eden bir IF node'u eklersin.

Pratikte Batch Boyutu ve Performans

Batch boyutu bir workflow'un ne kadar kararlı ve ne kadar hızlı çalıştığını doğrudan belirler. Çalıştırma başına örneğin 1 ila 5 item gibi küçük bir batch boyutu, sıkı rate limit'leri olan harici API'leri korur, ancak n8n'in daha fazla ayrı çalıştırma işlemesi gerektiğinden toplam çalışma süresini uzatır. Büyük bir batch boyutu workflow'u hızlandırır, ancak bir servisin 429 hatasıyla yanıt verme riskini veya büyük bir batch'in ortasında bir hata oluştuğunda workflow'un izlenmesinin daha zor olması riskini artırır. Pratikte, değeri daha fazla artırmadan önce orta düzeyde bir batch boyutuyla test etmen ve çalıştırma sürelerini ve hedef servisin olası hata yanıtlarını gözlemlemen en iyisidir.

Özellikle çok sayıda harici çağrı içeren üretim workflow'ları için, API'lerin aşırı yüklenmemesi ve çalıştırma üzerinde kontrolü elinde tutman için Loop Over Items'ı batch'ler arasındaki bekleme süreleriyle hedefli bir şekilde birleştirmek değerlidir. n8n workflow'larını yalnızca oluşturmakla kalmayıp aynı zamanda uzun vadede kararlı bir şekilde işletmek istiyorsan, NordFlux'ta n8n otomasyonu kapsamında tam olarak bu performans ve rate limit sorularında seni destekliyoruz, böylece dijital çalışanların güvenilir bir şekilde çalışır.

Sıkça Sorulan Sorular

Otomatik Döngü ile Loop Over Items Node'u Arasındaki Fark Nedir?

Otomatik döngü, hemen hemen her n8n node'unda kendiliğinden gerçekleşir: node, gelen her item'ı tek tek işler ve sonuç listesini iletir, bunun için herhangi bir şey yapılandırman gerekmez. Loop Over Items node'u ancak işlemeyi açıkça kontrollü parçalara bölmek istediğinde devreye girer, örneğin rate limit'lere uymak veya yalnızca bir seferde bir item işleyebilen node'lara hizmet vermek için.

Loop Over Items Node'u ile Sonsuz Döngü Nasıl Önlenir?

Sonsuz döngü genellikle Reset seçeneği etkinken ama hiçbir durdurma koşulu kontrol edilmediğinde ortaya çıkar. Bu durumda, örneğin `{{$("Loop Over Items").context["noItemsLeft"]}}` ifadesini değerlendiren bir IF node'u ekle ve sona ulaşıldığında workflow'u tekrar döngüye göndermek yerine done dalına yönlendir.

API İstekleri İçin Hangi Batch Boyutunu Seçmeliyim?

Genel geçer bir sayı yoktur, çünkü her servisin kendi rate limit'leri vardır. Başlangıç noktası olarak batch başına 1 ile 10 item arasındaki küçük değerler uygundur, bunları daha sonra hedef servisin gerçek yanıt sürelerine ve olası hata mesajlarına göre kademeli olarak ayarlarsın.

Her Node İçin Döngüyü Kendim mi Kurmalıyım?

Hayır, çoğu n8n node'u birden fazla item'ı ek bir yapılandırma olmadan otomatik olarak işler. Yalnızca sınırlı sayıda istisna node için, örneğin belirli veritabanı node'ları veya manuel sayfalama durumundaki HTTP Request node'u için, döngüyü Loop Over Items node'u veya geriye bağlı bir IF node'u ile kendin kurman gerekir.

Bir Döngü İçinde Önceki Çalıştırmalardan Gelen Verilere Erişebilir miyim?

Evet, Loop Over Items node'unun currentRunIndex gibi context özellikleri üzerinden mevcut çalıştırmayı belirleyebilirsin ve workflow'daki daha önceki node'lara referanslar üzerinden önceki adımlardan gelen veriler de dahil edilebilir. Birden fazla çalıştırma boyunca daha karmaşık ara depolama için ek olarak ara sonuçları toplayan bir Set veya Code node'u önerilir.

NordFlux hakkında

NordFlux UG (haftungsbeschränkt)

NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.

Hakkımızda daha fazlası
Ücretsiz ön analiz

Otomasyon veya KI hakkında somut sorularınız mı var?

Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.