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 | 説明 |
---|---|---|
ビジネスイベント |
|
デフォルトは |