首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以在spring batch中组合分区和并行步骤吗?

可以在spring batch中组合分区和并行步骤吗?
EN

Stack Overflow用户
提问于 2018-09-08 13:58:39
回答 2查看 1.8K关注 0票数 1

我想知道这在Spring Batch中是可行的吗?

Step1

Step2 (flow) -> flow1、flow2、flow3

Step3

其中每个

flow1 ->分区为5个GridSize

flow2 ->分区为5个GridSize

flow3 ->分区为5个GridSize

代码语言:javascript
复制
return jobBuilderFactory.get("dataLoad")
            .incrementer(new RunIdIncrementer())
            .listener(listener)
            .start(step1())
            .next(step2())
            .next(step3())
            .build()
            .build();
@Bean
public Flow step2() {
    Flow subflow1 = new FlowBuilder<Flow>("readTable1Flow").from(readTable1()).end();
    Flow subflow2 = new FlowBuilder<Flow>("readTable2Flow").from(readTable2()).end();
    Flow subflow3 = new FlowBuilder<Flow>("readTable3Flow").from(readTable3()).end();

    return new FlowBuilder<Flow>("splitflow").split(new SimpleAsyncTaskExecutor())
            .add(subflow1, subflow2, subflow3).build();
}
@Bean
public Step readTable1() {
    return stepBuilderFactory.get("readTable1Step")
            .partitioner(slaveStep1().getName(), partitioner1())
            .partitionHandler(slaveStep1Handler())
            .build();
}

@Bean
public Step readTable2() {
    return stepBuilderFactory.get("readTable2Step")
            .partitioner(slaveStep2().getName(), partitioner2())
            .partitionHandler(slaveStep2Handler())
            .build();
}
@Bean
public Step readTable3() {
    return stepBuilderFactory.get("readTable3Step")
            .partitioner(slaveStep3().getName(), partitioner2())
            .partitionHandler(slaveStep3Handler())
            .build();
}
EN

Stack Overflow用户

发布于 2018-09-11 05:07:27

我现在让它起作用了。我不能让它工作的结果是线程死锁。spring batch正在尝试向数据库(HsqlDB)中插入/更新元数据。每个流都处于等待状态。一旦我切换到不同的数据库,它就能工作。谢谢Mahmoud提供的信息!!

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52232490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档