319.6. サポートクラス


コンポーネントとは別に、Camel Spring Batch は、Spring Batch インフラストラクチャーにフックするために使用できるサポートクラスも提供します。

319.6.1. CamelItemReader

CamelItemReader を使用して、Camel インフラストラクチャーから直接バッチデータを読み取ることができます。

たとえば、以下のスニペットは、JMS キューからデータを読み取るように Spring Batch を設定します。

<bean id="camelReader" class="org.apache.camel.component.spring.batch.support.CamelItemReader">
  <constructor-arg ref="consumerTemplate"/>
  <constructor-arg value="jms:dataQueue"/>
</bean>

<batch:job id="myJob">
  <batch:step id="step">
    <batch:tasklet>
      <batch:chunk reader="camelReader" writer="someWriter" commit-interval="100"/>
    </batch:tasklet>
  </batch:step>
</batch:job>

319.6.2. CamelItemWriter

CamelItemWriterCamelItemReader と同様の目的を持っていますが、処理されたデータのチャンクを書き込む専用です。

たとえば、以下のスニペットは、JMS キューからデータを読み取るように Spring Batch を設定します。

<bean id="camelwriter" class="org.apache.camel.component.spring.batch.support.CamelItemWriter">
  <constructor-arg ref="producerTemplate"/>
  <constructor-arg value="jms:dataQueue"/>
</bean>

<batch:job id="myJob">
  <batch:step id="step">
    <batch:tasklet>
      <batch:chunk reader="someReader" writer="camelwriter" commit-interval="100"/>
    </batch:tasklet>
  </batch:step>
</batch:job>

319.6.3. CamelItemProcessor

CamelItemProcessor は、Spring Batch org.springframework.batch.item.ItemProcessor インターフェイスの実装です。後者の実装は、Request Reply パターン を中継して、バッチアイテムの処理を Camel インフラストラクチャーに委譲します。処理するアイテムは、メッセージの本文として Camel エンドポイントに送信されます。

たとえば、以下のスニペットは、Direct エンドポイントSimple 式言語 を使用して、バッチアイテムの簡単な処理を実行します。

<camel:camelContext>
  <camel:route>
    <camel:from uri="direct:processor"/>
    <camel:setExchangePattern pattern="InOut"/>
    <camel:setBody>
      <camel:simple>Processed ${body}</camel:simple>
    </camel:setBody>
  </camel:route>
</camel:camelContext>

<bean id="camelProcessor" class="org.apache.camel.component.spring.batch.support.CamelItemProcessor">
  <constructor-arg ref="producerTemplate"/>
  <constructor-arg value="direct:processor"/>
</bean>

<batch:job id="myJob">
  <batch:step id="step">
    <batch:tasklet>
      <batch:chunk reader="someReader" writer="someWriter" processor="camelProcessor" commit-interval="100"/>
    </batch:tasklet>
  </batch:step>
</batch:job>

319.6.4. CamelJobExecutionListener

CamelJobExecutionListener は、ジョブ実行イベントを Camel エンドポイントに送信する org.springframework.batch.core.JobExecutionListener インターフェイスの実装です。

Spring Batch によって生成された org.springframework.batch.core.JobExecution インスタンスは、メッセージのボディーとして送信されます。コールバックの前後を区別するには、SPRING_BATCH_JOB_EVENT_TYPE ヘッダーを BEFORE または AFTER の値に設定します。

以下のスニペットの例では、Spring Batch ジョブ実行イベントを JMS キューに送信します。

<bean id="camelJobExecutionListener" class="org.apache.camel.component.spring.batch.support.CamelJobExecutionListener">
  <constructor-arg ref="producerTemplate"/>
  <constructor-arg value="jms:batchEventsBus"/>
</bean>

<batch:job id="myJob">
  <batch:step id="step">
    <batch:tasklet>
      <batch:chunk reader="someReader" writer="someWriter" commit-interval="100"/>
    </batch:tasklet>
  </batch:step>
  <batch:listeners>
    <batch:listener ref="camelJobExecutionListener"/>
  </batch:listeners>
</batch:job>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.