ループ
4 つのボックスがあります。いずれも本体を専用の出力から発行し、
作業の終わりを done ポートで知らせます。
ForEach(各要素について)
Section titled “ForEach(各要素について)”リストを反復します。
| 入力 | items(json) |
| 出力 | each — 要素ごとに 1 回発行 |
| 設定 | parallelism:{ enabled, count } |
並列化しない場合、反復は順番に実行されます。
並列化すると、同時に最大 count 件(最小は 2)が実行されます。
done ポートが発行されるのは、反復のサブグラフがすべて終わったあとだけです。
まとめ処理や後片付けはここに接続します。
HTTP リクエスト ──response[body.ids]──► ForEach(並列 4) ├─ each ──► HTTP リクエスト「詳細」 └─ done ──► Log「完了」For(回数指定ループ)
Section titled “For(回数指定ループ)”数値のループです。
| 入力 | from、to、step(数値) |
| 出力 | each — index という名前 |
| 設定 | from、to、operator(既定は <。ほかに ≤、=、≥、>、≠)、step(0 は 1 として扱われます)、parallelism |
While(条件先判定ループ)
Section titled “While(条件先判定ループ)”条件を先に判定するループです。
| 入力 | left、right |
| 出力 | then — 本体 という名前。純粋なシグナル |
| 設定 | operator、left、right |
本体はシグナルであり、値は運びません。
条件を再評価させるには、本体の末尾を While ボックスの in ポートに戻してください。
カウンターや終了条件には 実行変数を使います。
Do…While(条件後判定ループ)
Section titled “Do…While(条件後判定ループ)”前のボックスと同じですが、本体が少なくとも 1 回実行されます。 判定はそのあとに行われます。出力の名前は ループ です。
| 状況 | ボックス |
|---|---|
| リストがある | ForEach |
| 反復回数が分かっている | For |
| 終了条件が結果に依存し、判定を先に行う | While |
| 同じだが、少なくとも 1 周は必要 | Do…While |
| 失敗したときにやり直したい | Retry |
ForEach と For の並列化は、本物のネットワーク呼び出しを並列に送り出します。 検証環境で使うときは段階的に上げてください。 呼び出しの間隔を平らにするために 待機のボックスを挟むことも検討してください。