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

Java中jobExecution.getStatus()何时返回BatchStatus.STOPPED值?

什么情况下jobExecution.getStatus() == BatchStatus.STOPPED判断为true

BatchStatus.STOPPED是Spring Batch定义的任务优雅主动终止的状态,区别于异常失败的FAILED状态,触发该状态的常见场景如下:

  • 通过Spring Batch 运维接口主动停止任务:比如调用JobOperator.stop(jobExecutionId)方法手动终止正在运行的任务,Spring Batch会等待当前正在执行的可停止操作完成后,将任务状态标记为STOPPED
  • Step 流转配置触发停止:你在Job的Step流转规则中配置了停止条件,例如如下配置:
    .on("CUSTOM_EXIT_CODE").stop()
    
    当上游Step执行结果符合匹配条件时,整个Job会直接停止,状态标记为STOPPED
  • 自定义停止逻辑触发:比如你在ItemReader/ItemProcessor/ItemWriter中实现了自定义中断逻辑,符合条件时主动将当前Step/Job的状态设置为STOPPED,任务执行完当前操作后就会进入停止状态

STOPPED状态本身属于正常可控的终止,不是异常场景,后续重启任务时可以从上次停止的位置继续执行,你现有代码中对该状态仅打印info日志的处理是符合语义的。

内容的提问来源于stack exchange,提问作者Francis Raj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:54:04