【问题标题】:parallel read data from maps and write into different files in spring batch从地图中并行读取数据并在春季批处理中写入不同的文件
【发布时间】:2015-12-19 08:16:08
【问题描述】:

我正在尝试从一些 4 个地图中读取数据,并且我需要写入 4 个差异文件。它应该使用 Spring Batch 并行读取和写入。

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"/>

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

【问题讨论】:

  • 您对这些选项有什么问题?或更具体地说,是什么阻止您使用分区?...无论如何,如果您可以对所有输入/输出使用相同的读取器、处理器、写入器定义,分区将是我的首选解决方案,它也可以用于单线程 btw

标签: java spring parallel-processing spring-batch


【解决方案1】:

我的个人意见是分区。我们将它用于类似的东西,其中输入文件和输出文件具有不同的名称。我将参考您从here 获得上述示例的部分底部。另外请务必注意与后期绑定相关的链接部分,这会有所帮助。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-03-31
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 2021-12-28
      • 2019-03-26
      • 2016-02-20
      相关资源
      最近更新 更多