小编Ner*_*rdy的帖子

即使步骤已完成,Spring Batch 作业也会失败

我有一个包含三个步骤的 Spring Batch 工作。第一步运行一次,第二步和第三步针对队列中的每个项目运行。该工作的代码:

return jobBuilderFactory.get("job")
        .incrementer(new RunIdIncrementer())
        .listener(jobListener())
        .flow(step1())
        .next(step2())
        .next(encrypt()).on("CONTINUE")
        .to(step2()).on("COMPLETED")
        .end().end().build();
Run Code Online (Sandbox Code Playgroud)

用于重复步骤的步骤执行监听器:

@AfterStep
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
    if (queue.size() > 0) {
        return new ExitStatus("CONTINUE");
    } else {
        return new ExitStatus("COMPLETED");
    }
}
Run Code Online (Sandbox Code Playgroud)

队列是自动连接的。

我的问题是,即使步骤完成时没有失败的退出状态,作业仍然以失败的退出状态结束。

我已经对其进行了调试,以查看作业是否因步骤以“COMPLETED”以外的退出状态完成而失败,但事实并非如此。

有任何想法吗?我认为这可能与其中一个步骤没有特定的听众有关,但我不知道那可能是什么。如果需要的话我可以发布更多代码。感谢所有帮助。

日志跟踪:

2017-05-18 10:08:10.327 [INFO ] c.d.r.r.BatchApplication - Starting BatchApplication on <computer_name> with PID <pid>
2017-05-18 10:08:10.329 [DEBUG] c.d.r.r.BatchApplication - Running with Spring Boot v1.4.1.RELEASE, Spring v4.3.3.RELEASE
2017-05-18 10:08:10.330 [INFO ] c.d.r.r.BatchApplication - The following profiles are active: <profile> …
Run Code Online (Sandbox Code Playgroud)

java spring batch-file spring-batch

1
推荐指数
1
解决办法
5907
查看次数

标签 统计

batch-file ×1

java ×1

spring ×1

spring-batch ×1