我想知道这在Spring Batch中是可行的吗?
Step1
Step2 (flow) -> flow1、flow2、flow3
Step3
其中每个
flow1 ->分区为5个GridSize
flow2 ->分区为5个GridSize
flow3 ->分区为5个GridSize
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();
}发布于 2018-09-11 05:07:27
我现在让它起作用了。我不能让它工作的结果是线程死锁。spring batch正在尝试向数据库(HsqlDB)中插入/更新元数据。每个流都处于等待状态。一旦我切换到不同的数据库,它就能工作。谢谢Mahmoud提供的信息!!
https://stackoverflow.com/questions/52232490
复制相似问题