Цикли
Чотири блоки. Усі вони видають своє тіло на окремий вихід і сигналізують про
завершення роботи портом done.
ForEach (для кожного)
Section titled “ForEach (для кожного)”Проходить списком.
| Входи | items (json) |
| Виходи | each — одна емісія на елемент |
| Конфігурація | parallelism: { enabled, count } |
Без паралельності ітерації йдуть послідовно. З нею одночасно виконується до
count ітерацій (щонайменше 2).
Порт done спрацьовує лише тоді, коли завершилися всі підграфи ітерацій:
саме туди під’єднують підсумок або прибирання.
Запит HTTP ──response[body.ids]──► ForEach (паралельність 4) ├─ each ──► Запит HTTP «деталі» └─ done ──► Log «завершено»For (для)
Section titled “For (для)”Числовий цикл.
| Входи | from, to, step (числа) |
| Виходи | each — має назву index |
| Конфігурація | from, to, operator (типово <, а також ≤, =, ≥, >, ≠), step (0 трактується як 1), parallelism |
While (доки)
Section titled “While (доки)”Цикл із перевіркою на початку.
| Входи | left, right |
| Виходи | then — має назву тіло, чистий сигнал |
| Конфігурація | operator, left, right |
Тіло — це сигнал: воно не переносить значення. Замкніть кінець тіла на порт
in блоку While, щоб умова обчислилася знову.
Використовуйте змінну запуску як лічильник або як умову зупинки.
Do…While (повторювати доки)
Section titled “Do…While (повторювати доки)”Те саме, що й попередній блок, але тіло виконується щонайменше один раз: перевірка відбувається після. Вихід має назву цикл.
Як обрати
Section titled “Як обрати”| Ситуація | Блок |
|---|---|
| У мене є список | ForEach |
| Я знаю кількість ітерацій | For |
| Умова зупинки залежить від результату й перевіряється до | While |
| Так само, але потрібен хоча б один прохід | Do…While |
| Я хочу повторити спробу після невдачі | Retry |
Зважайте на навантаження
Section titled “Зважайте на навантаження”Паралельність ForEach і For надсилає справжні мережеві виклики одночасно. У тестовому середовищі підвищуйте її поступово — і згадайте про блок Очікувати, щоб згладити темп.