【发布时间】:2014-07-22 19:18:52
【问题描述】:
我正在使用 spring 批处理 patitioning 来运行作业的多个线程。 该作业应该从数据库中读取,处理数据并将结果写入数据库文件, 以下是我当前的工作配置。
<step id="masterStep">
<partition step="slave" partitioner="rangePartitioner">
<handler grid-size="10" task-executor="taskExecutor" />
</partition>
</step>
</job>
<!-- Jobs to run -->
<step id="slave" xmlns="http://www.springframework.org/schema/batch">
<tasklet>
<chunk reader="pagingItemReader" writer="flatFileItemWriter"
processor="itemProcessor" commit-interval="1" />
</tasklet>
</step>
使用此配置,当作业运行时,作业的 10 个线程启动,也意味着使用了 10 个读取器,这意味着每条记录将被处理 10 次,导致分区无用。
您能否提供一个解决方案,仅对处理器和读取器进行分区,以便我们拥有处理器和写入器的多个线程,并且只使用读取器的 1 个实例
【问题讨论】:
标签: java multithreading spring parallel-processing spring-batch