Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerRound Robin は、2 つ以上の処理ルートが含まれる Mule コンポーネントであり、フローでコンポーネントが実行されるたびに 1 つのルートのみを実行します。Round Robin 内の各ルートは、1 つ以上のプロセッサーを含むことができるスコープです。Round Robin は最初のルートから Mule イベントへのルート内でプロセッサーの実行を開始し、結果をフローの次のプロセッサーに送信します。Round Robin は前回選択したルートを記録し、同じルートを連続して使用することはありません。たとえば、Round Robin が最初に実行されると、コンポーネントによって最初のルートが選択されます。次回の実行時には 2 番目のルートが選択されます。前回選択されたルートが最後のルートだった場合、最初のルートが実行されます。
Round Robin に達した Mule イベントのペイロード、変数、属性はルート内で処理を行うためにアクセスできます。ルート内の Mule イベントを変更すると、Round Robin 後のプロセッサーに伝播されます。
次の例は、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]"/>
<round-robin doc:name="Round Robin" >
<route > <!-- 3 -->
<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 > <!-- 4 -->
<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"/> <!-- 5 -->
</flow>
Scheduler (<scheduler/>) が 10 秒ごとにフローを実行します。
Set Payload (<set-payload/>) によって配列 [1,2,3,4] が提供されます。
Round Robin の前の Logger コンポーネントによって最初のペイロード [1,2,3,4] が出力されます。
Round Robin の最初のルート (<route/>) である Set Payload コンポーネントによって、DataWeave 式 payload - 4 を使用して最初のペイロードの最後の要素が削除され、そのルートの Logger によって生成されたペイロードがキー "r1" の値 { "r1": [1,2,3] } として出力されます。
Round Robin の 2 つ目のルート (<route/>) である Set Payload コンポーネントによって、DataWeave 式 payload + 5 を使用して新しい要素が最初のペイロードに追加され、そのルートの Logger によって生成されたペイロードがキー "r2" の値 { "r2": [1,2,3,4,5] } として出力されます。
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]
...
Round Robin によって、<round-robin /> 要素に対して設定可能な属性が提供されます。
| 名前 | XML | 説明 |
|---|---|---|
ビジネスイベント |
|
デフォルトは |