Gå til innholdet

Kontroll

Fem bokser styrer kjøreflyten i et scenario.

Til påminnelse: alle bokser har også de implisitte portene in, error og done — se Porter og forbindelser.

Deklarerer parametrene til scenarioet.

Inndataingen
Utdatavalueett enkelt objekt { navn: verdi, … }
Konfigurasjonname (navnet på parameteren), valueType (typen og standardverdien)

Verdiene oppgis ved oppstart, med --param nom=valeur på kommandolinjen, eller de etterspørres interaktivt hvis kjøringen når boksen uten at det finnes en verdi.

Inndata «baseUrl» (streng) ──► env-porten på forespørselen

Eksponerer et resultat for den som kaller scenarioet.

Inndatavalue
Utdataingen — dette er et sluk: verken error eller done
Konfigurasjonname

Et scenario som kalles av en Kjør scenario-handling, gjør hver av utgangene sine tilgjengelig på porten output:<navn> hos den som kaller.

Forgrening med to veier.

Inndataleft, right
Utdatathen, else
Konfigurasjonoperator: lt, lte, eq, gte, gt, ne, contains — pluss left og right som litterale verdier

Et tips: hvis ingen av operandene er koblet eller fylt ut, tester boksen ganske enkelt sannhetsverdien til signalet som kommer inn på in. Det er «hvis vi har kommet så langt» uten noen uttrykt betingelse.

Forgrening med N veier.

Inndataon
Utdataén case-<id>-port per deklarert tilfelle, pluss default
Konfigurasjoncases: en liste med { id, value }

Å foretrekke framfor en kaskade av If så snart det er mer enn to utfall: hvert tilfelle er en egen tråd, visuelt lesbar.

Grense for gjenoppretting etter feil.

InndatamaxAttempts, delay
Utdataattempt (hvert forsøk), exhausted (forsøkene er brukt opp)
Konfigurasjonse nedenfor
FeltStandardRolle
maxAttempts3Maksimalt antall forsøk
backofffixedfixed, linear eller exponential
delay + delayUnitGrunnleggende forsinkelse (ms, s, min)
factor2Vekstfaktor i eksponentiell modus
maxDelay + maxDelayUnitTak for forsinkelsen
retryOnErrortruePrøv på nytt ved en feil
retryOnFailurefalsePrøv på nytt ved en forretningsmessig feil
retryOnStatusListe over HTTP-statuser, for eksempel [429, 503]

Delgrafen som er koblet til attempt, utgjør omfanget som prøves på nytt. Ved suksess går utgangen via done. Denne boksen har ingen error-port: det er den som er grensen.

Retry (3, eksponentiell, [429,503])
├─ attempt ──► HTTP-forespørsel ──► Assert
└─ exhausted ──► Throw «tjenesten er utilgjengelig»