Перейти до вмісту

Керування

П’ять блоків керують потоком виконання сценарію.

Нагадування: кожен блок має ще й неявні порти in, error та done — див. Порти та зв’язки.

Input / Param (вхід / параметр)

Section titled “Input / Param (вхід / параметр)”

Оголошує параметри сценарію.

Входинемає
Виходиvalueєдиний об’єкт { ім'я: значення, … }
Конфігураціяname (назва параметра), valueType (його тип і значення за замовчуванням)

Значення надаються під час запуску, через --param ім'я=значення в командному рядку або запитуються інтерактивно, якщо виконання дійшло до блоку без доступного значення.

Вхід «baseUrl» (рядок) ──► порт env запиту

Output / Return (вихід / повернення)

Section titled “Output / Return (вихід / повернення)”

Віддає результат тому, хто викликав сценарій.

Входиvalue
Виходинемає — це стік: ні error, ні done
Конфігураціяname

Сценарій, викликаний дією Запустити сценарій, робить кожен свій вихід доступним на порту output:<ім'я> того, хто його викликав.

Розгалуження на два шляхи.

Входиleft, right
Виходиthen, else
Конфігураціяoperator: lt, lte, eq, gte, gt, ne, contains — а також left і right як буквальні значення

Порада: якщо жодного операнда не під’єднано й не заповнено, блок просто перевіряє істинність сигналу, отриманого на in. Це «якщо ми дійшли аж сюди» без явної умови.

Розгалуження на N шляхів.

Входиon
Виходипо порту case-<id> на кожен оголошений випадок плюс default
Конфігураціяcases: перелік { id, value }

Кращий за каскад If, щойно результатів більше двох: кожен випадок — це окремий провід, візуально читабельний.

Межа відновлення після помилки.

ВходиmaxAttempts, delay
Виходиattempt (кожна спроба), exhausted (спроби вичерпано)
Конфігураціядив. нижче
ПолеТиповоРоль
maxAttempts3Максимальна кількість спроб
backofffixedfixed, linear або exponential
delay + delayUnitБазова затримка (ms, s, min)
factor2Коефіцієнт зростання в експоненційному режимі
maxDelay + maxDelayUnitМежа затримки
retryOnErrortrueПовторювати в разі помилки
retryOnFailurefalseПовторювати в разі предметної невдачі
retryOnStatusПерелік статусів HTTP, наприклад [429, 503]

Підграф, під’єднаний до attempt, і становить ту область, яку повторюють. У разі успіху вихід відбувається через done. Цей блок не має порту error: саме він і є межею.

Повторити (3, експоненційно, [429,503])
├─ attempt ──► Запит HTTP ──► Assert
└─ exhausted ──► Throw «служба недоступна»