【发布时间】:2018-10-11 01:11:44
【问题描述】:
我知道spring批处理框架可以分割一个主步骤,以便并行运行多个从步骤。
我的要求是按顺序(如流)对一系列步骤进行分区以操作多个表,而不是只有一个步骤。我只能想到两个替代方案。
- 只创建一个 tasklet 来组装所有逻辑来更新串行表。
- 为流程中的每个步骤创建分区步骤。
理想情况下,我希望 Spring Batch 开箱即用地支持此功能。请阐明什么是实现目标的最佳方法。
非常感谢一个例子。
更新:我做了一些谷歌搜索,发现我可以使用 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();
【问题讨论】:
-
“按顺序对一系列步骤进行分区”是什么意思?您可以按顺序运行多个步骤,每个步骤都是一个分区步骤。这就是你想要达到的目标吗?
-
是的,或者我可以使用 FlowStep 将多个步骤划分为一个流。请参阅更新的问题。这样做更好吗?
-
感谢您的澄清。看我的回答。希望对您有所帮助。