You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Batch流程控制异常:步骤均完成但Job状态为失败

Spring Batch Job流程配置问题修复方案

你的Job配置逻辑存在两处关键问题:

  • 重复定义了fileCollectTasklet执行失败的分支,完全没有处理COMPLETED状态的流程
  • 第一个失败分支里的.on("*").fail()会强制Job失败,后续重复的分支逻辑被覆盖,导致所有场景最终都会触发失败逻辑

修正后的配置代码

public Job test_job() {
    return jobBuilderFactory.get("test_job")
            .incrementer(new RunIdIncrementer())
            .preventRestart()
            .start(fileCollectTasklet())
                // 处理fileCollectTasklet执行成功的情况
                .on("COMPLETED")
                .to(writerTasklet())
                .on("*") // 不管writerTasklet执行结果如何
                .end() // 最终标记Job为成功状态
            .from(fileCollectTasklet())
                // 处理fileCollectTasklet执行失败的情况
                .on("FAILED")
                .to(writerTasklet())
                .on("*") // 不管writerTasklet执行结果如何
                .fail() // 最终标记Job为失败状态
            .end();
}

逻辑说明

  • 当fileCollectTasklet返回COMPLETED状态时,执行writerTasklet,无论其执行结果是成功还是失败,Job最终都会被标记为成功
  • 当fileCollectTasklet返回FAILED状态时,执行writerTasklet,无论其执行结果如何,Job最终都会被标记为失败

内容的提问来源于stack exchange,提问作者주행가 종시기

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:12:52