Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第159章 SpringBatch
Spring Batch コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
spring-batch: コンポーネントとサポートクラスは、Camel と Spring Batch インフラストラクチャー間の統合ブリッジを提供します。
Maven ユーザーは、このコンポーネントの
pom.xml
に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
spring-batch:jobName[?options]
spring-batch:jobName[?options]
jobName は、Camel レジストリーにある Spring Batch ジョブの名前を表します。
警告
このコンポーネントはプロデューサーエンドポイントの定義にのみ使用できます。つまり、
from ()
ステートメントで Spring Batch コンポーネントを使用することはできません。
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | デフォルト値 | 説明 |
---|---|---|
jobLauncherRef
|
null
|
非推奨で、Camel 3.0!Camel 2.10:代わりに jobLauncher=#theName を使用してください。 |
jobLauncher
|
null
|
Camel 2.11.1: Camel レジストリーから使用する JobLauncher を明示的に指定します。
|
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Spring Batch コンポーネントがメッセージを受信すると、ジョブ実行がトリガーされます。ジョブは、以下のアルゴリズムに従って解決された
org.springframework.batch.core.launch.JobLaucher
インスタンスを使用して実行されます。
JobLauncher
がコンポーネントに手動で設定されている場合は、これを使用します。jobLauncherRef
オプションがコンポーネントに設定されている場合、Camel Registry で指定の名前でJobLauncher
を検索します。非推奨で、Camel 3.0 で削除されます。- jobLauncher 名で Camel レジストリーに登録されている
JobLauncher
がある場合は、これを使用します。 - 上記の手順で JobLauncher を解決できず、Camel レジストリーに
JobLauncher
メッセージで見つかったすべてのヘッダーは、ジョブパラメーターとして
JobLauncher
に渡されます。文字列、Long
、Double
、および java.util.Date
の値は org.springframework.batch.core.JobParametersBuilder
にコピーされます。他のデータ型は String
に変換されます。
例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Spring Batch ジョブ実行をトリガーします。
from("direct:startBatch").to("spring-batch:myJob");
from("direct:startBatch").to("spring-batch:myJob");
JobLauncher
セットで Spring Batch ジョブの実行を明示的にトリガーします。
from("direct:startBatch").to("spring-batch:myJob?jobLauncherRef=myJobLauncher");
from("direct:startBatch").to("spring-batch:myJob?jobLauncherRef=myJobLauncher");
JobLauncher
によって返される Camel 2.11.1JobExecution
インスタンス以降、SpringBatchProducer
によって出力メッセージに転送されます。JobExecution
インスタンスを使用して、Spring Batch API を直接使用して一部の操作を実行できます。
サポートクラス リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Component とは別に、Camel Spring Batch は Spring Batch インフラストラクチャーへのフックに使用できるサポートクラスも提供します。
CamelItemReader リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
CamelItemReader
を使用すると、Camel インフラストラクチャーから直接バッチデータを読み取ることができます。
たとえば、以下のスニペットは、JMS キューからデータを読み取るように Spring Batch を設定します。
CamelItemWriter リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
CamelItemWriter
は CamelItemReader
と同様に目的がありますが、処理されたデータのチャンクの書き込み専用です。
たとえば、以下のスニペットは、データを JMS キューに書き込むように Spring Batch を設定します。
CamelItemProcessor リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
CamelItemProcessor
は Spring Batch org.springframework.batch.item.ItemProcessor
インターフェイスの実装です。後者の実装は Request Reply パターン をリレーし、バッチ項目の処理を Camel インフラストラクチャーに委譲します。処理する項目は、メッセージのボディーとして Camel エンドポイントに送信されます。
たとえば、以下のスニペットは、Direct エンドポイント と Simple 式言語 を使用してバッチアイテムの簡単な処理を実行します。
CamelJobExecutionListener リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
CamelJobExecutionListener
は、ジョブ実行イベントを Camel エンドポイントに送信する org.springframework.batch.core.JobExecutionListener
インターフェイスの実装です。
Spring Batch によって生成された
org.springframework.batch.core.JobExecution
インスタンスは、メッセージのボディーとして送信されます。before- と after-callbacks SPRING_BATCH_JOB_EVENT_TYPE
ヘッダーを区別するには、BEFORE
または AFTER
値に設定されます。
以下のスニペット例は、Spring Batch ジョブ実行イベントを JMS キューに送信します。