Flex Gateway新着情報
Governance新着情報
Monitoring API Manager2 つ以上の処理ルートが提供され、フローでコンポーネントが実行されるたびに 1 つのルートのみが実行されます。
Round Robin 内の各ルートは、1 つ以上のプロセッサーを含むことができるスコープです。Round Robin は最初のルートから Mule イベントへのルート内でプロセッサーの実行を開始し、結果をフローの次のプロセッサーに送信します。Round Robin は前回選択したルートを記録し、同じルートを連続して使用することはありません。たとえば、Round Robin が最初に実行されると、コンポーネントによって最初のルートが選択されます。次回の実行時には 2 番目のルートが選択されます。前回選択されたルートが最後のルートだった場合、最初のルートが実行されます。
Round Robin に達した Mule イベントのペイロード、変数、属性はルート内で処理を行うためにアクセスできます。ルート内の Mule イベントを変更すると、Round Robin 後のプロセッサーに伝播されます。
このコンポーネントは、次の XML 構造をサポートします。
<round-robin
doc:name="Round robin"
doc:id="kaykco" >
<!-- First processing route -->
<route>
<!-- Processors -->
</route>
<!-- Second processing route -->
<route>
<!-- Processors -->
</route>
</round-robin>
Round Robin (<round-robin/>
) 属性は UI および XML で設定できます。
属性名 | 属性 XML | 説明 |
---|---|---|
Round robin (ラウンドロビン) (デフォルト) |
|
キャンバスに表示されるコンポーネントの編集可能な名前。 |
なし |
|
コンポーネントの自動生成された識別子。 |
なし |
|
|
<route/>
は Round Robin の子要素です。
子要素 | 説明 |
---|---|
|
Mule イベントを処理するための 1 つ以上のコンポーネントを子要素として受け入れます。複数の |
次の例では、2 つの処理ルートが設定されている Round Robin を設定します。
<flow name="round-robin-ex" >
<scheduler doc:name="Scheduler" > (1)
<scheduling-strategy >
<fixed-frequency frequency="10" timeUnit="SECONDS"/>
</scheduling-strategy>
</scheduler>
<set-payload value="#[[1,2,3,4]]" doc:name="Set Payload" /> (2)
<logger level="INFO" doc:name="Logger"
category="PAYLOAD BEFORE ROUND ROBIN"
message="#[payload]"/> (3)
<round-robin doc:name="Round Robin" >
<route > (4)
<set-payload value="#[payload - 4]" doc:name="Set Payload" />
<logger level="INFO" doc:name="Logger"
message="#[%dw 2.0 output application/json --- { 'r1' : payload}]"
category="ROUTE 1 PAYLOAD"/>
</route>
<route > (5)
<set-payload value="#[payload + 5]" doc:name="Set Payload" />
<logger level="INFO" doc:name="Logger"
message="#[%dw 2.0 output application/json --- {'r2' : payload}]"
category="ROUTE 2 PAYLOAD"/>
</route>
</round-robin>
<logger level="INFO" doc:name="Logger"
message="#[payload]"
category="PAYLOAD OUTSIDE ROUND ROBIN"/> (6)
</flow>
1 | Scheduler (<scheduler/> ) が 10 秒ごとにフローを実行します。 |
2 | Set Payload (<set-payload/> ) によって配列 [1,2,3,4] が提供されます。 |
3 | Round Robin の前の Logger コンポーネントによって最初のペイロード [1,2,3,4] が出力されます。 |
4 | Round Robin の最初のルート (<route/> ) である Set Payload コンポーネントによって、DataWeave 式 payload - 4 を使用して最初のペイロードの最後の要素が削除され、そのルートの Logger によって生成されたペイロードがキー "r1" の値 { "r1": [1,2,3] } として出力されます。 |
5 | Round Robin の 2 つ目のルート (<route/> ) である Set Payload コンポーネントによって、DataWeave 式 payload + 5 を使用して新しい要素が最初のペイロードに追加され、そのルートの Logger によって生成されたペイロードがキー "r2" の値 { "r2": [1,2,3,4,5] } として出力されます。 |
6 | Round Robin の後の Logger コンポーネントによって、Round Robin の実行によって処理されたルートのペイロードが出力されます。最初の実行では [1, 2, 3] が出力されます。次の実行では [1, 2, 3, 4, 5] が出力されます。その次には [1, 2, 3] が出力される、といった具合になります。 |
次の抜粋では、ログに Round Robin ルーターの 3 つの実行が表示されています。この例では、フローによって ID が 4df56260
、53eb1c50
、59e12460
で始まる Mule イベントが処理されます。(この例は読みやすくするために編集されています)。
... INFO 2022-12-19 10:02:30,233 ...event: 4df56260-7fc7-11ed-957f-147ddaaf4f97] PAYLOAD BEFORE ROUND ROBIN: [1, 2, 3, 4] INFO 2022-12-19 10:02:30,290 ...event: 4df56260-7fc7-11ed-957f-147ddaaf4f97] ROUTE 1 PAYLOAD: { "r1": [1,2,3] } INFO 2022-12-19 10:02:30,291 ...event: 4df56260-7fc7-11ed-957f-147ddaaf4f97] PAYLOAD OUTSIDE ROUND ROBIN: [1, 2, 3] INFO 2022-12-19 10:02:40,154 ...event: 53eb1c50-7fc7-11ed-957f-147ddaaf4f97] PAYLOAD BEFORE ROUND ROBIN: [1, 2, 3, 4] INFO 2022-12-19 10:02:40,167 ...event: 53eb1c50-7fc7-11ed-957f-147ddaaf4f97] ROUTE 2 PAYLOAD: { "r2": [1, 2, 3, 4, 5] } INFO 2022-12-19 10:02:40,168 ...event: 53eb1c50-7fc7-11ed-957f-147ddaaf4f97] PAYLOAD OUTSIDE ROUND ROBIN: [1, 2, 3, 4, 5] INFO 2022-12-19 10:02:50,151 ...event: 59e12460-7fc7-11ed-957f-147ddaaf4f97] PAYLOAD BEFORE ROUND ROBIN: [1, 2, 3, 4] INFO 2022-12-19 10:02:50,154 ...event: 59e12460-7fc7-11ed-957f-147ddaaf4f97] ROUTE 1 PAYLOAD: { "r1": [1, 2, 3] } INFO 2022-12-19 10:02:50,154 ...event: 59e12460-7fc7-11ed-957f-147ddaaf4f97] PAYLOAD OUTSIDE ROUND ROBIN: [1, 2, 3] ...