2017-07-09 3 views
0

現在、Spring BootおよびSpring Batchアプリケーションでデータベースから200,000レコードを読み込み、処理してXML出力を生成しています。Spring Batch Partitionioning DBtoFile Javaの設定例

JDBCPagingItemReaderを使用してDatabaseから10Kレコードのバッチを読み取り、この出力を生成するためにStaxEventItemReaderを使用するシングルスレッドSpringバッチプログラムを作成しました。合計プロセスには30分かかります。 Spring Batchローカルパーティショニングを使用してこのプログラムを強化したいと思っています。誰もがJavaの設定コードを共有して、Springバッチの分割を行うことができます。これはマルチスレッド+マルチファイルに分割されます。マルチスレッドJava構成にしようとしましたが、StaxEventItemReaderはシングルスレッドなので動作しませんでした。私が見るのはPartitionだけです。

助けをお待ちしています。

答えて

1

この問題を解決する方法はパーティション化が正しいことです。私は、分割されたバッチジョブをどのように構成するのかをJDBCからXMLへの例は持っていませんが、CSVからJDBCに置き換えて、ItemReaderItemWriterを必要なものに置き換えるだけです。(JdbcPagingItemReaderそれぞれStaxEventItemWriter)。この例では実際にSpring Cloud Taskを使用してワーカーをリモートプロセスとして起動していますが、(DeployerPartitionHandlerの代わりにコンフィグレーション)の代わりにpartitionHandlerを使用すると、パーティションが内部的にスレッドとして実行されます。

https://github.com/mminella/S3JDBC

関連する問題