跳到內容

控制

有五個節點負責駕馭情境的執行流程。

提醒一下:任何節點都還帶有隱含的 inerrordone 連接埠 — 請參閱 連接埠與連結

宣告情境的參數

輸入
輸出value — 一個單一物件 { name: value, … }
設定name(參數名稱)、valueType(它的型別與預設值)

值在啟動時提供,可以用命令列的 --param name=value 給定;如果執行走到這個節點時 還沒有值可用,就會以互動方式向您詢問

Input「baseUrl」(字串) ──► 請求的 env 連接埠

把一個結果公開給情境的呼叫方。

輸入value
輸出無 — 它是一個終點:既沒有 error,也沒有 done
設定name

執行情境動作呼叫的情境,會把它的每一個輸出都放到呼叫方的 output:<name> 連接埠上。

兩路分支。

輸入leftright
輸出thenelse
設定operatorltlteeqgtegtnecontains — 另外還有以字面值給定的 leftright

小技巧:如果兩個運算元都沒接線也沒填值,這個節點就只單純判斷 in 上收到的訊 號是否為真。這就是那種沒有明確條件、只問「有沒有走到這裡」的用法。

N 路分支。

輸入on
輸出每個已宣告的分支一個 case-<id> 連接埠,另加 default
設定cases:一份 { id, value } 的清單

只要出口超過兩個,它就比一串 If 好用:每個分支都是獨立的一條線,看圖就懂。

錯誤重試的邊界。

輸入maxAttemptsdelay
輸出attempt(每一次嘗試)、exhausted(嘗試次數用盡)
設定見下表
欄位預設作用
maxAttempts3最多嘗試幾次
backofffixedfixedlinearexponential
delay + delayUnit基礎延遲(mssmin
factor2指數模式下的成長係數
maxDelay + maxDelayUnit延遲的上限
retryOnErrortrue發生錯誤時重試
retryOnFailurefalse業務邏輯失敗時重試
retryOnStatus一份 HTTP 狀態碼清單,例如 [429, 503]

接在 attempt 上的子圖就是會被重試的範圍。成功時會從 done 出去。 這個節點沒有 error 連接埠:因為它自己就是那道邊界。

Retry (3, exponential, [429,503])
├─ attempt ──► HTTP 請求 ──► Assert
└─ exhausted ──► Throw「服務無法使用」