Spring批处理 - 并行处理两个任务但第二个任务依赖于第一个任务

时间:2016-07-27 13:07:19

标签: java multithreading spring-batch

我正在spring batch processing使用large data

我的问题是我有Tasklet executing两个one after another。我无法并行运行它,因为第二个tasklet首先具有一个依赖关系Tasklet。为了节省时间,我希望在前几Tasklet之前items之前processed之后立即开始tasklet。由于Spring Batch使用Chunk Oriented处理方式。可以ItemWriter一个Tasklet,将已经处理的项目块传递给另一个Tasklet ItemReaderItemProcessorItemWriter下次处理?但是当另一个tasklet正在处理chunk时,之前的tasklet应该NOT等待,它应该iteration超过next {{1} }}

1 个答案:

答案 0 :(得分:1)

根据您的描述和上述其他信息,我只需使用CompositeItemWriter来完成此操作。

项目列表将首先由WriterOne编写,然后传递给WriterTwo并由其编写。

<bean id="compositeWriter" 
        class="org.springframework.batch.item.support.CompositeItemWriter">
    <property name="delegates">
        <list>
            <ref bean="writerOne" />
            <ref bean="writerTwo" />
        </list>
    </property>
</bean>

<bean id="writerOne"  ...  />
<bean id="writerTwo"  ...  />