我知道spring批处理框架可以对主步骤进行分区,以便以并行方式运行多个从属步骤。
我的要求是按顺序对一系列步骤进行分区(如流程)来操作多个表,而不只是一步。我只能想到两个替代方案。
理想情况下,我希望spring批量支持这个功能。请详细说明实现目标的最佳方法。
更新:我做了一些谷歌搜索,发现我可以使用FlowStep对流进行分区,如下所示。这是正确的做法吗?
public Step partiotionStep() {
return stepBuilderFactory.get("partiotionStep")
.partitioner("slaveStep", partitioner())
.step(new FlowStep(flow()))
.taskExecutor(taskExecutor())
.build();
public Flow flow() {
return new FlowBuilder<Flow>("flow")
.start(step1())
.next(step2())
.next(step3())
.build();
您可以按顺序定义具有多个步骤的作业,每个步骤都是一个分区步骤:
public Job job() {
return jobBuilderFactory("job")
.start(step1()) // step1 is a partitioned step
.next(step2()) // step2 is also a partitioned step
.build();
}
你可以在我的答案中找到一个类似的问题:Is it possible to combine partition and parallel steps in spring batch?
希望这可以帮助。