java - 使用 spring-java-config 创建一个 'decider-step-loop'

标签 java spring spring-batch spring-java-config

我正在尝试将在 xml 中定义的 spring-batch 作业移植到基于 java-config 的作业。 这是我的作业配置文件的片段:

<decision id="decision" decider="someDecider">
 <next on="continue" to="stepCont" />
 <next on="timeout" to="stepTimeout" />
 <end on="COMPLETED" />
</decision>

<step id="stepCont" next="stepReport">
  ... do something
</step>

<step id="stepReport" next="decision">
  ... create report
</step>

<step id="stepTimeout">
  ...
</step>

有没有办法用 spring-java-config 创建这样一个循环?

我开始了:

.get("myJob")
.start(someStepBefore())
.next(someDecider).on("timeout").to(stepTimeout())
.from(someDecider).on("continue").to(stepCont())
.from(someDecider).on("COMPLETED").end().build()
.build();

它必须是这样的:

.get("myJob")
.start(someStepBefore())
.next(someDecider).on("timeout").to(stepTimeout())
.from(someDecider).on("continue").to(stepCont()).next(someDecider)...
.from(someDecider).on("COMPLETED").end().build()
.build();

我的工作就像loopFlowSample .没有xml怎么实现?

最佳答案

这个怎么样:

    FlowBuilder<Flow> flowBuilder = new FlowBuilder<Flow>("flow1");

    Flow flow = flowBuilder
        .start(importPersonStep)
        .next(loopDecider)
        .on("CONTINUE")
        .to(importPersonStep)
        .from(loopDecider)
        .on("COMPLETED")
        .end()
        .build();

    return jobs.get("importUserJob")
            .incrementer(new RunIdIncrementer())
            .start(flow)
            .end()
            .build();

关于java - 使用 spring-java-config 创建一个 'decider-step-loop',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24307020/

相关文章:

java - 找不到主类

java - 如何从文本文件创建对象数组?

java - 此有效的 Java 代码从 javac 1.8 update 91 产生错误

spring - 从目录 Spring 批处理 FileReadingMessageSource 读取所有文件

java - Spring Batch 不以并行模式执行流程。

spring-batch - 将 Spring Batch 与 JtaTransactionManager 一起使用时出现 java.lang.StackOverflowError 错误

Java:不可变类的伪setter方法

Spring Security OAuth2,它决定了安全性?

java - 如何在 Spring 框架前端接收验证消息?

java - Spring security 复制了 RemeberMeProvider