簡単バッチジョブリーダー

easy-batchは実装されたいくつかのリーダーを提供します。データソースからレコードを読み取るには、実装されたRecordReaderインターフェイスを登録するだけです
(もちろん、自分で実装できます)。

読者

  • コードリファレンス
 
ジョブジョブ= 新しいJobBuilder()
    。reader(new MyRecordReader(myDataSource))
    。build();
  • サポートされているソース
フラットファイル  
xml、json && yaml
MS Excel
- メモリの文字列
データベース
JMS キュー
BlockingQueue およびIterable オブジェクト
Java 8 ストリーム
標準入力
  • 参加はモジュールから生じます

公式フォーム

 

 

データ読み取り障害の処理

イージーバッチはいくつかの戦略を提供し、データソースの読み取りの例外を簡単に処理できます

  • 参照コード
 
ジョブジョブ= 新しいJobBuilder()
    。リーダ(新しいRetryableRecordReader(unreliableDataSourceReader、新しいRetryPolicy(5、1、SECONDS)))
    。build();

パフォーマンスの説明

  • JdbcRecordReaderデータの処理はブロックごとです。大量のデータを処理する場合はMaxRowsfetchSizeパラメータを設定して大量のデータがメモリに読み込まれないようにすることができます
  • JpaRecordReaderクエリを介してデータをロードするためJPQL java.util.List忍耐を有し、maxResultsので指定することができる大規模なデータセットのために必要にオブジェクト、
    行の最大データローディング
  • HibernateRecordReader使用してorg.hibernate.ScrollableResults処理されたデータを、データサイズのfetchSizeはmaxResultを取得して、最大指定することができる
    行の数

マルチファイルデータの読み込み

私たちはできるMultiFileRecordReader複数のファイルのデータをロードしますが、データ形式は同じでなければなりません、もちろん、JSON、YAML、XML、フラットファイル、複数のファイルの提供
ロードモードを

JdbcRecordReader警告

JdbcRecordReaderはタイプレコードJdbcRecordを生成します。JdbcRecordにはjava.sql.ResultSetasペイロードがあります。マスタの
リレーショナルデータベースと、作業者レコードが処理されて作業者に割り当てられたジョブは、マスターが行っていることができる場合のデータ読み出し
キューワーカーに割り当てられた読み出しデータソースとすべてのレコードを仕事。したがって、メインジョブによってデータベース接続が閉じられ、ディスパッチされたJDBCレコードは利用できなくなります。
これは、ペイロードがメインジョブによって閉じられた接続に依存しているためです。
この問題を解決する方法は、メインジョブでJDBCレコードをドメインオブジェクトにマップし、これらのオブジェクトをワーカーに安全に割り当てることです。これは、フォーク/結合モードで解決できます。

参考文献

https://github.com/j-easy/easy-batch/wiki/readers

おすすめ

転載: www.cnblogs.com/rongfengliang/p/12730100.html