---
schema_version: "1"
id: abdcc40377967671b41d59543de898d56abcc2e3f13bf34a22258e23ab3b5165
title: Round Robin (<component-xml-root/>)
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/anypoint-code-builder/acb-component-round-robin.md
canonical_url: https://docs.mulesoft.com/jp/anypoint-code-builder/acb-component-round-robin
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 3d0a2ff8b392ed03476a339f2034c274d03cfa36877f3ce52128d8fdec892cdb
description: MuleSoft Documentation Site
latest: true
---
# Round Robin (<component-xml-root/>)

2 つ以上の処理ルートが提供され、フローでコンポーネントが実行されるたびに 1 つのルートのみが実行されます。

Round Robin 内の各ルートは、1 つ以上のプロセッサーを含むことができるスコープです。Round Robin は最初のルートから Mule イベントへのルート内でプロセッサーの実行を開始し、結果をフローの次のプロセッサーに送信します。Round Robin は前回選択したルートを記録し、同じルートを連続して使用することはありません。たとえば、Round Robin が最初に実行されると、コンポーネントによって最初のルートが選択されます。次回の実行時には 2 番目のルートが選択されます。前回選択されたルートが最後のルートだった場合、最初のルートが実行されます。

Round Robin に達した Mule イベントのペイロード、変数、属性はルート内で処理を行うためにアクセスできます。ルート内の Mule イベントを変更すると、Round Robin 後のプロセッサーに伝播されます。

## [](#component-xml)コンポーネント XML

このコンポーネントは、次の XML 構造をサポートします。

```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 で設定できます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">属性名</th>
<th class="tableblock halign-left valign-top">属性 XML</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Round robin (ラウンドロビン)</strong>​ (デフォルト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>doc:name</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>キャンバスに表示されるコンポーネントの編集可能な名前。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>doc:id</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>コンポーネントの自動生成された識別子。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>tracking:enable-default-events</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>true</code>​ に設定すると、ビジネスイベント機能がアクティブ化されます。</p>
</div></div></td>
</tr>
</tbody>
</table>

`<route/>`​ は Round Robin の子要素です。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">子要素</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;route/&gt;</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Mule イベントを処理するための 1 つ以上のコンポーネントを子要素として受け入れます。複数の ​<code>&lt;route/&gt;</code>​ 設定が許可されます。</p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#例)例

次の例では、2 つの処理ルートが設定されている Round Robin を設定します。

```xml
<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&#10;output application/json&#10;---&#10;{ '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&#10;output application/json&#10;---&#10;{'r2' : payload}]"
                category="ROUTE 2 PAYLOAD"/>
    </route>
  </round-robin>
  <logger level="INFO" doc:name="Logger"
           message="#[payload]"
	   category="PAYLOAD OUTSIDE ROUND ROBIN"/> (6)
</flow>
```

<table><tbody><tr><td><i class="conum" data-value="1"></i><b>1</b></td><td>Scheduler (​<code>&lt;scheduler/&gt;</code>​) が 10 秒ごとにフローを実行します。</td></tr><tr><td><i class="conum" data-value="2"></i><b>2</b></td><td>Set Payload (​<code>&lt;set-payload/&gt;</code>​) によって配列 ​<code>[1,2,3,4]</code>​ が提供されます。</td></tr><tr><td><i class="conum" data-value="3"></i><b>3</b></td><td>Round Robin の​<em>前</em>​の Logger コンポーネントによって最初のペイロード ​<code>[1,2,3,4]</code>​ が出力されます。</td></tr><tr><td><i class="conum" data-value="4"></i><b>4</b></td><td>Round Robin の​<em>最初</em>​のルート (​<code>&lt;route/&gt;</code>​) である Set Payload コンポーネントによって、DataWeave 式 ​<code>payload - 4</code>​ を使用して最初のペイロードの最後の要素が削除され、そのルートの Logger によって生成されたペイロードがキー ​<code>"r1"</code>​ の値 ​<code>{ "r1": [1,2,3] }</code>​ として出力されます。</td></tr><tr><td><i class="conum" data-value="5"></i><b>5</b></td><td>Round Robin の ​<em>2 つ目</em>​のルート (​<code>&lt;route/&gt;</code>​) である Set Payload コンポーネントによって、DataWeave 式 ​<code>payload + 5</code>​ を使用して新しい要素が最初のペイロードに追加され、そのルートの Logger によって生成されたペイロードがキー ​<code>"r2"</code>​ の値 ​<code>{ "r2": [1,2,3,4,5] }</code>​ として出力されます。</td></tr><tr><td><i class="conum" data-value="6"></i><b>6</b></td><td>Round Robin の​<em>後</em>​の Logger コンポーネントによって、Round Robin の実行によって処理されたルートのペイロードが出力されます。最初の実行では ​<code>[1, 2, 3]</code>​ が出力されます。次の実行では ​<code>[1, 2, 3, 4, 5]</code>​ が出力されます。その次には ​<code>[1, 2, 3]</code>​ が出力される、といった具合になります。</td></tr></tbody></table>

次の抜粋では、ログに 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\]

...