Spring batch 命令停止时的CommandLineJobRunner退出状态

Spring batch 命令停止时的CommandLineJobRunner退出状态,spring-batch,exit-code,Spring Batch,Exit Code,我正在使用.bat和.sh处理SpringBatch。 当我使用-stop标志时,我认为如果作业不存在或没有运行,我应该等待非零退出代码。 实际上,如果作业结束时没有错误,我得到0 我错在哪里?使用CommandLineJobRunner停止作业时,您真正做的是发出停止作业的请求。CommandLineJobRunner在发出请求后返回,而不是在作业停止后返回,因为这可能是一个不确定的时间量。使用CommandLineJobRunner停止作业时,获得非零返回代码的唯一方法是作业未运行或在Job

我正在使用.bat和.sh处理SpringBatch。 当我使用-stop标志时,我认为如果作业不存在或没有运行,我应该等待非零退出代码。 实际上,如果作业结束时没有错误,我得到0


我错在哪里?

使用CommandLineJobRunner停止作业时,您真正做的是发出停止作业的请求。CommandLineJobRunner在发出请求后返回,而不是在作业停止后返回,因为这可能是一个不确定的时间量。使用CommandLineJobRunner停止作业时,获得非零返回代码的唯一方法是作业未运行或在JobRepository中找不到该作业。

好的,我理解该行为,但在我的情况下,作业已正确结束。在数据库中标记为已完成。在这种情况下,why-stop return me 0?如果发现作业要停止,CommandLineJobRunner应该返回0。这不是你看到的吗?唯一需要注意的是,它不会等到作业存储库被标记为完成后才返回