gpt4 book ai didi

java - 如果抛出异常,则使用非零代码退出 spring-batch 作业

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:05:47 24 4
gpt4 key购买 nike

我正在尝试修复从 shell 脚本启动的 spring-batch 作业。然后脚本检查进程退出代码以确定作业是否成功。然而,Java 退出 0,即使程序以异常结束,除非使用不同的代码专门调用 System.exit,因此脚本总是报告成功。

有没有办法让 spring-batch 在失败时返回一个非零代码?明确地说,我不是在谈论 ExitStatus 或 BatchStatus,而是 java 进程的实际退出代码。

如果没有办法告诉 spring-batch 返回非零值,我能否在 Tasklet(或 Listener)中安全地使用 System.exit 而不会干扰 spring-batch 在异常发生后在幕后所做的任何事情?

做不到这一点,任何人都可以建议一种方法来将 BatchStatus 或其他一些失败指示器返回到 shell 脚本吗?

最佳答案

根据 this github issue建议传递 SpringApplication#exit 的结果到 System#exit。您不需要访问 ExitCodeGenerator实例直接或手动关闭上下文。

ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
int exitCode = SpringApplication.exit(context);
System.exit(exitCode);

关于java - 如果抛出异常,则使用非零代码退出 spring-batch 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40427590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com