弹簧批次中的多线程

时间:2017-07-26 16:46:45

标签: spring-batch

我是初次批量生产的新手。我需要读取和处理从文本到csv的500 000行。我的物品处理器需要5分钟来处理100行,这将导致将近2天的处理和写入500k行。

如何同时调用项目阅读器和处理器?

1 个答案:

答案 0 :(得分:1)

您可以使用" SimpleAsyncTaskExecutor"用于并行处理并在spring应用程序上下文中使用它,如下所示:

<bean id="taskExecutor"
    class="org.springframework.core.task.SimpleAsyncTaskExecutor">
</bean>

然后您可以在某个特定的tasklet中指定此taskExecutor,如下所示:

<tasklet task-executor="taskExecutor">
    <chunk reader="deskReader" processor="deskProcessor"
           writer="deskWriter" commit-interval="1" />
</tasklet>

请注意,您需要定义此处指定的ItemReader,ItemWriter和ItemProcessor类。 此外,对于并行处理,您可以指定throttle-limit,它指定并行运行的线程数,如果未指定throttle-limit,则默认为4。