Перейти до вмісту

Цикли

Чотири блоки. Усі вони видають своє тіло на окремий вихід і сигналізують про завершення роботи портом done.

Проходить списком.

Входиitems (json)
Виходиeach — одна емісія на елемент
Конфігураціяparallelism: { enabled, count }

Без паралельності ітерації йдуть послідовно. З нею одночасно виконується до count ітерацій (щонайменше 2).

Порт done спрацьовує лише тоді, коли завершилися всі підграфи ітерацій: саме туди під’єднують підсумок або прибирання.

Запит HTTP ──response[body.ids]──► ForEach (паралельність 4)
├─ each ──► Запит HTTP «деталі»
└─ done ──► Log «завершено»

Числовий цикл.

Входиfrom, to, step (числа)
Виходиeach — має назву index
Конфігураціяfrom, to, operator (типово <, а також , =, , >, ), step (0 трактується як 1), parallelism

Цикл із перевіркою на початку.

Входиleft, right
Виходиthen — має назву тіло, чистий сигнал
Конфігураціяoperator, left, right

Тіло — це сигнал: воно не переносить значення. Замкніть кінець тіла на порт in блоку While, щоб умова обчислилася знову.

Використовуйте змінну запуску як лічильник або як умову зупинки.

Do…While (повторювати доки)

Section titled “Do…While (повторювати доки)”

Те саме, що й попередній блок, але тіло виконується щонайменше один раз: перевірка відбувається після. Вихід має назву цикл.

СитуаціяБлок
У мене є списокForEach
Я знаю кількість ітераційFor
Умова зупинки залежить від результату й перевіряється доWhile
Так само, але потрібен хоча б один прохідDo…While
Я хочу повторити спробу після невдачіRetry

Зважайте на навантаження

Section titled “Зважайте на навантаження”

Паралельність ForEach і For надсилає справжні мережеві виклики одночасно. У тестовому середовищі підвищуйте її поступово — і згадайте про блок Очікувати, щоб згладити темп.