Przejdź do głównej zawartości

Sterowanie

Pięć bloków steruje przepływem wykonania scenariusza.

Przypomnienie: każdy blok ma również niejawne porty in, error i done — zob. Porty i połączenia.

Deklaruje parametry scenariusza.

Wejściabrak
Wyjściavaluejeden obiekt { name: value, … }
Konfiguracjaname (nazwa parametru), valueType (jego typ i wartość domyślna)

Wartości podaje się przy uruchomieniu, przez --param name=value w wierszu poleceń, albo są pobierane interaktywnie, jeśli wykonanie dotrze do bloku bez dostępnej wartości.

Wejście „baseUrl” (ciąg znaków) ──► port env żądania

Udostępnia wynik temu, kto wywołał scenariusz.

Wejściavalue
Wyjściabrak — to ujście: ani error, ani done
Konfiguracjaname

Scenariusz wywołany akcją Uruchom scenariusz udostępnia każde ze swoich wyjść na porcie output:<name> węzła wywołującego.

Rozgałęzienie dwudrożne.

Wejścialeft, right
Wyjściathen, else
Konfiguracjaoperator: lt, lte, eq, gte, gt, ne, contains — a ponadto left i right jako wartości literalne

Wskazówka: jeśli żaden z operandów nie jest podłączony ani wypełniony, blok sprawdza po prostu prawdziwość sygnału odebranego na in. To odpowiednik „jeśli udało się dojść aż tutaj”, bez jawnego warunku.

Rozgałęzienie N-drożne.

Wejściaon
Wyjściajeden port case-<id> na każdy zadeklarowany przypadek, a ponadto default
Konfiguracjacases: lista elementów { id, value }

Rozwiązanie lepsze niż kaskada bloków If, gdy tylko liczba wyjść przekracza dwa: każdy przypadek to osobne połączenie, czytelne wizualnie.

Granica ponawiania po błędzie.

WejściamaxAttempts, delay
Wyjściaattempt (każda próba), exhausted (próby wyczerpane)
Konfiguracjazob. poniżej
PoleDomyślnieRola
maxAttempts3Maksymalna liczba prób
backofffixedfixed, linear lub exponential
delay + delayUnitOpóźnienie bazowe (ms, s, min)
factor2Współczynnik wzrostu w trybie wykładniczym
maxDelay + maxDelayUnitGórna granica opóźnienia
retryOnErrortruePonawianie przy błędzie
retryOnFailurefalsePonawianie przy niepowodzeniu biznesowym
retryOnStatusLista statusów HTTP, na przykład [429, 503]

Podgraf podłączony do attempt stanowi zakres objęty ponawianiem. W razie powodzenia wyjście następuje przez done. Ten blok nie ma portu error — sam jest tą granicą.

Retry (3, wykładniczy, [429,503])
├─ attempt ──► Żądanie HTTP ──► Assert
└─ exhausted ──► Throw „usługa niedostępna”