使用注释以并行方式(拆分)配置Spring Batch步骤

在我研究Spring Batch文档以并行执行步骤的地方,我只能通过XML看到它的配置,如下所示。

<split id="split1" next="step4">

<flow>

<step id="step1" parent="s1" next="step2"/>

<step id="step2" parent="s2"/>

</flow>

<flow>

<step id="step3" parent="s3"/>

</flow>

我正在使用Spring Batch编写应用程序,其中我也使用过Spring

Boot,并且我的所有配置都是使用注释完成的。是否可以使用Java配置来配置拆分步骤?我检查了Spring Batch中Step接口的API

文档,但是它没有Split

Step的默认实现。有什么办法可以使用现有的默认实现来实现它?

目前,我已经完成了其他类似的工作:

@Bean

public Step someStep() {

return stepBuilderFactory.get("someStep")

.<A, B> chunk(1-).reader(someReader)

.processor(someProcessor).writer(someWriter).build();

}

@Bean

public Job historicalDataJob() {

return jobBuilderFactory.get("someJOb")

.incrementer(new RunIdIncrementer()).flow(someStep()).end()

.build();

}

回答:

SimpleJobBuilder配置通过Java配置分裂提供设施。以下是从FlowJobBuilderTests(https://github.com/spring-

projects/spring-batch/blob/master/spring-batch-

core/src/test/java/org/springframework/batch/core/job/ builder /

FlowJobBuilderTests.java)。显然,您需要对此进行分解,但这应该可以说明总体思路。

// Create each flow

Flow flow = new FlowBuilder<Flow>("subflow").from(step1).end();

// Create the job

SimpleJobBuilder builder = new JobBuilder("flow").repository(jobRepository).start(step2);

// Create split providing an async task executor so the flows are executed in parallel

builder.split(new SimpleAsyncTaskExecutor()).add(flow).end();

// Build the job and execute it

builder.preventRestart().build().execute(execution);

以上是 使用注释以并行方式(拆分)配置Spring Batch步骤 的全部内容, 来源链接: utcz.com/qa/424561.html

回到顶部