所以我觉得我已经正确定义了我的工作流程,但是当我运行它时,我得到一个FlowExecutionException,说我的'流程中没有找到'流程'的下一个状态'。
我正在使用一个实现JobExecutionListener的tasklet,如下所示,它似乎按预期工作:
@Bean
public Job job() {
LOGGER.info("STARTING BATCH JOB");
return jobs.get("job")
.incrementer(new RunIdIncrementer())
.start(taskletStep())
.on("a")
.to(step1a)
.next(step2)
.on("b")
.to(step2)
.on("c")
.to(step2)
.on("d")
.to(step1b)
.next(step2)
.on("*").end()
.end()
.build();
}
这是我的工作配置。我也想简化它(所有步骤都是'b'所以我希望这是一个'后'的东西),但只是希望它首先工作。
{{1}}
我知道我必须错过流程的某些部分,但我无法确定它。
答案 0 :(得分:1)
我相信我明白了。我需要使用'from'函数让我的配置知道我在哪里使用'on'(它目前认为我正在寻找'step2'的退出状态。所以它看起来像这样:
@Bean
public Job job() {
LOGGER.info("STARTING BATCH JOB");
return jobs.get("job")
.incrementer(new RunIdIncrementer())
.start(taskletStep())
.on("a")
.to(step1a)
.next(step2)
.from(taskletStep())
.on("b")
.to(step2)
.from(taskletStep())
.on("c")
.to(step2)
.from(taskletStep())
.on("d")
.to(step1b)
.next(step2)
.end()
.build();
}