Cykly
Čtyři bloky. Všechny vysílají své tělo na vyhrazený výstup a konec práce
oznamují svým portem done.
ForEach (pro každý)
Section titled “ForEach (pro každý)”Iteruje přes seznam.
| Vstupy | items (json) |
| Výstupy | each — jedno vyslání na každý prvek |
| Konfigurace | parallelism: { enabled, count } |
Bez paralelizace se iterace řetězí sekvenčně. S ní jich běží až count
současně (minimálně 2).
Port done vysílá až tehdy, když skončily všechny podgrafy iterací: právě
sem se zapojuje shrnutí nebo úklid.
Požadavek HTTP ──response[body.ids]──► ForEach (paralelizace 4) ├─ each ──► Požadavek HTTP „detail“ └─ done ──► Log „hotovo“For (pro)
Section titled “For (pro)”Číselný cyklus.
| Vstupy | from, to, step (čísla) |
| Výstupy | each — pojmenovaný index |
| Konfigurace | from, to, operator (výchozí <, dále ≤, =, ≥, >, ≠), step (0 se považuje za 1), parallelism |
While (dokud)
Section titled “While (dokud)”Cyklus s testem na začátku.
| Vstupy | left, right |
| Výstupy | then — pojmenovaný tělo, čistý signál |
| Konfigurace | operator, left, right |
Tělo je signál: nepřenáší žádnou hodnotu. Konec těla veďte zpět na port in
bloku While, aby se podmínka vyhodnotila znovu.
Jako čítač nebo jako podmínku ukončení použijte proměnnou běhu.
Do…While (opakuj, dokud)
Section titled “Do…While (opakuj, dokud)”Totéž co předchozí blok, ale tělo se provede alespoň jednou: test proběhne až potom. Výstup se jmenuje cyklus.
Jak vybrat
Section titled “Jak vybrat”| Situace | Blok |
|---|---|
| Mám seznam | ForEach |
| Znám počet iterací | For |
| Podmínka ukončení závisí na výsledku a testuje se předem | While |
| Totéž, ale je potřeba alespoň jeden průchod | Do…While |
| Chci opakovat pokus po neúspěchu | Retry |
Pozor na zátěž
Section titled “Pozor na zátěž”Paralelizace bloků ForEach a For posílá skutečná síťová volání souběžně. V testovacím prostředí ji zvyšujte postupně — a myslete na blok Čekat, který tempo vyhladí.