Hoppa till innehåll

Loopar

Fyra boxar. Alla sänder sin kropp på en egen utgång och signalerar att arbetet är klart via sin port done.

Itererar över en lista.

Ingångaritems (json)
Utgångareach — en sändning per element
Konfigurationparallelism: { enabled, count }

Utan parallellism följer iterationerna på varandra sekventiellt. Med parallellism körs upp till count samtidigt (minst 2).

Porten done sänder först när alla iterationernas delgrafer är klara: det är där du kopplar in sammanfattningen eller uppstädningen.

HTTP-begäran ──response[body.ids]──► ForEach (parallellism 4)
├─ each ──► HTTP-begäran ”detalj”
└─ done ──► Log ”klart”

Numerisk loop.

Ingångarfrom, to, step (tal)
Utgångareach — kallad index
Konfigurationfrom, to, operator (< som standard, eller , =, , >, ), step (0 behandlas som 1), parallelism

Loop med testet först.

Ingångarleft, right
Utgångarthen — kallad kropp, ren signal
Konfigurationoperator, left, right

Kroppen är en signal: den bär inget värde. Koppla slutet av kroppen tillbaka till porten in på boxen While för att utvärdera villkoret igen.

Använd en körningsvariabel som räknare eller som stoppvillkor.

Identisk med den föregående, men kroppen körs minst en gång: testet sker efteråt. Utgången kallas loop.

SituationBox
Jag har en listaForEach
Jag vet hur många iterationer det blirFor
Stoppvillkoret beror på ett resultat, testat föreWhile
Samma sak, men det behövs minst ett varvDo…While
Jag vill försöka igen om det misslyckasRetry

Parallellismen i ForEach och For skickar riktiga nätverksanrop parallellt. På en testmiljö bör du öka den gradvis — och tänk på boxen Vänta för att jämna ut takten.