并行从地图读取数据并在春季批次中写入不同的文件

时间:2015-09-22 11:13:55

标签: java spring parallel-processing spring-batch

我正在尝试从4个地图中读取数据,我需要写入4个差异文件..它应该使用弹簧批并行读写。

http://docs.spring.io/spring-batch/trunk/reference/html/scalability.html

1方法:使用分区程序

2方法:平行步骤

<job id="job1">
    <split id="split1" task-executor="taskExecutor" next="step4">
        <flow>
            <step id="step1" parent="s1" next="step2"/>
            <step id="step2" parent="s2"/>
        </flow>
        <flow>
            <step id="step3" parent="s3"/>
        </flow>
    </split>
    <step id="step4" parent="s4"/>
</job>

<beans:bean id="taskExecutor" class="org.spr...SimpleAsyncTaskExecutor"/>

需要一点指导,因为这是我第一次遇到这类问题。哪一个更好的方法或任何其他选择?

2 个答案:

答案 0 :(得分:0)

我的个人意见是分区。我们将它用于输入文件和输出文件具有不同名称的类似内容。我将从here引用上面示例的部分的底部。另外请务必注意与后期绑定相关的链接部分,这将有所帮助。

答案 1 :(得分:0)

如果您有不同的数据源必须写入不同的目标(例如表A中的数据存储在文件A.txt中,依此类推),我会使用并行步骤。它配置简单易行。

如果我想分配处理一个数据源所需的工作量,或者我想将数据从一个源拆分到几个不同的目标,我会考虑进行分区。