Looping در n98n#
Looping زمانی مفید است که بخواهید چندین مورد را پردازش کنید یا عملی را چندین بار انجام دهید، مانند ارسال پیام به هر مخاطب در دفترچه آدرس شما. n98n این فرآیند تکراری را به صورت خودکار مدیریت میکند، یعنی نیازی نیست حلقهها را به طور خاص در ورکفلوهای خود بسازید. البته برخی نودها وجود دارند که اینطور نیستند.
استفاده از حلقهها در n98n#
نودهای n98n هر تعداد آیتم را به عنوان ورودی میپذیرند، این آیتمها را پردازش میکنند و نتایج را خروجی میدهند. میتوانید هر آیتم را به عنوان یک نقطه داده واحد، یا یک سطر در جدول خروجی یک نود تصور کنید.
معمولا نودها برای هر آیتم یک بار اجرا میشوند. برای مثال، اگر میخواستید نام و یادداشتهای مشتریان در نود دیتاستور مشتریان را به عنوان پیام در Slack ارسال کنید، باید:
- نود Slack را به نود دیتاستور مشتریان متصل کنید.
- پارامترها را پیکربندی کنید.
- نود را اجرا کنید.
در نتیجه، پنج پیام دریافت خواهید کرد: یکی برای هر آیتم.
این روش به شما امکان میدهد چندین آیتم را بدون نیاز به کانکشن خاص و مستقیم نودها در حلقه، پردازش کنید.
اجرای نودها یکبار#
برای مواقعی که نمیخواهید نود تمامی آیتمهای دریافتی را پردازش کند، مثلا فقط پیام Slack را به اولین مشتری ارسال کنید، میتوانید این کار را با فعال کردن پارامتر Execute Once در تب Settings آن نود انجام دهید. این تنظیم زمانی مفید است که دادههای ورودی شامل چندین آیتم باشند و تنها بخواهید اولین آیتم را پردازش کنید.
ایجاد حلقهها#
معمولا ن8ن تمام آیتمهای ورودی را در حلقه میچرخاند. اما در موارد خاص، باید یک حلقه بسازید تا تمامی آیتمها را پیمایش کنید. برای لیست نودهایی که به طور خودکار روی تمامی آیتمهای ورودی حلقه نمیزنند، به exception nodes مراجعه کنید.
Loop تا برآورده شدن یک شرط#
برای ساختن حلقه در یک ورکفلو n98n، خروجی یک نود را به ورودی نودای قبلی متصل کنید. سپس، یک نود if اضافه کنید تا زمان توقف حلقه را کنترل کند.
در اینجا یک نمونه ورکفلو که حلقهای با نود IF
پیادهسازی میکند، آورده شده است:
Loop تا زمانی که تمامی آیتمها پردازش شوند#
از نود Loop Over Items زمانی استفاده کنید که میخواهید تا زمانی که تمامی آیتمها پردازش شوند حلقه بزنید. برای پردازش هر آیتم به صورت جداگانه، Batch Size را بر روی 1
تنظیم کنید.
میتوانید دادهها را در گروههایی دستهبندی کنید و این گروهها را پردازش کنید. این روش برای جلوگیری از محدودیتهای نرخ API در پردازش حجم زیاد دادههای ورودی یا زمانی که میخواهید گروه خاصی از آیتمهای بازگشتی را پردازش کنید، مفید است.
نود Loop Over Items پس از اینکه همه آیتمهای ورودی به گروههایی تقسیم شدند و به نود بعدی در ورکفلو انتقال یافتند، اجرای خود را متوقف میکند، بنابراین ضرورتی ندارد که یک نود IF برای توقف حلقه اضافه کنید.
نودهای استثنا#
نودها و عملیاتهایی که باید حلقهسازی را در ورکفلو خود طراحی کنید:
- CrateDB تنها یک بار برای
insert
وupdate
اجرا میشود. - نود کد در حالت Run Once for All Items: همه آیتمها را بر اساس قطعه کد وارد شده پردازش میکند.
- نود اجرای ورکفلو در حالت Run Once for All Items.
- درخواست HTTP: باید صفحهبندی دادهها را خودتان مدیریت کنید. اگر تماس API شما نتایج صفحهبندی شده بازمیگرداند، باید حلقهای برای دریافت یک صفحه در هر نوبت ایجاد کنید.
- Microsoft SQL تنها برای
insert
،update
وdelete
اجرا میشود. - MongoDB تنها برای
insert
وupdate
. - QuestDB فقط برای
insert
. - Redis:
- توضیح: این عملیات فقط یک بار اجرا میشود، regardless از تعداد آیتمهای ورودی.
- ReadingRSS تنها برای URL درخواست شده.
- TimescaleDB تنها برای
insert
وupdate
.