Przejdź do głównej zawartości

Pętle

Cztery bloki. Wszystkie emitują swoje ciało na dedykowanym wyjściu i sygnalizują koniec pracy przez port done.

Iteruje po liście.

Wejściaitems (json)
Wyjściaeach — jedna emisja na element
Konfiguracjaparallelism: { enabled, count }

Bez równoległości iteracje następują po sobie sekwencyjnie. Z włączoną równoległością wykonuje się jednocześnie do count iteracji (minimum 2).

Port done emituje dopiero po zakończeniu wszystkich podgrafów iteracji: to tam podłącza się podsumowanie albo czyszczenie.

Żądanie HTTP ──response[body.ids]──► ForEach (równoległość 4)
├─ each ──► Żądanie HTTP „szczegóły”
└─ done ──► Log „zakończono”

Pętla liczbowa.

Wejściafrom, to, step (liczby)
Wyjściaeach — o nazwie index
Konfiguracjafrom, to, operator (domyślnie <, albo , =, , >, ), step (0 jest traktowane jak 1), parallelism

Pętla ze sprawdzeniem warunku na wstępie.

Wejścialeft, right
Wyjściathen — o nazwie ciało, czysty sygnał
Konfiguracjaoperator, left, right

Ciało jest sygnałem: nie przenosi żadnej wartości. Koniec ciała trzeba zawrócić na port in bloku While, aby warunek został ponownie oceniony.

Jako licznik lub jako warunek zatrzymania służy zmienna uruchomienia.

Tak samo jak w poprzednim przypadku, ale ciało wykonuje się co najmniej raz: warunek sprawdzany jest później. Wyjście nosi nazwę pętla.

SytuacjaBlok
Jest dostępna listaForEach
Liczba iteracji jest znanaFor
Warunek zatrzymania zależy od wyniku i jest sprawdzany przed obiegiemWhile
Tak samo, ale potrzebny jest co najmniej jeden obiegDo…While
Trzeba ponowić próbę po niepowodzeniuRetry

Równoległość bloków ForEach i For wysyła prawdziwe wywołania sieciowe równocześnie. W środowisku testowym warto zwiększać ją stopniowo — i pamiętać o bloku Czekaj, który wygładza tempo.