Spring Batch Partitiioning DBtoFile Java配置示例

时间:2017-07-09 23:03:14

标签: spring-batch partitioning

我目前正致力于Spring Boot和Spring Batch应用程序,从数据库中读取200,000条记录,处理它并生成XML输出。

我编写了单线程Spring Batch程序,该程序使用JDBCPagingItemReader从数据库和StaxEventItemReader读取一批10K记录以生成此输出。整个过程需要30分钟。我想通过使用Spring Batch本地分区来增强此程序。任何人都可以共享Java配置代码来执行Spring Batch分区的任务,这将把处理分成多线程+多文件。我尝试多线程java配置,但StaxEventItemReader是单线程,所以它不起作用。我唯一看到的就是Partition。

感谢帮助。

1 个答案:

答案 0 :(得分:1)

你是正确的,分区是解决这个问题的方法。我没有关于如何配置分区批处理作业的JDBC到XML的示例,但我确实有一个CSV到JDBC的示例,您应该能够在其中替换ItemReader和{{ 1}}与您需要的(分别为ItemWriterJdbcPagingItemReader)。此示例实际上使用Spring Cloud Task将工作程序作为远程进程启动,但如果将StaxEventItemWriter替换为partitionHandler(而不是已配置的TaskExecutorPartitionHandler),则会执行分区内部作为线程。

https://github.com/mminella/S3JDBC