Spring 引导批处理作业 - 退出 codes/Return 代码
Spring boot batch jobs - Exit codes/Return codes
我在外部 Tomcat 上部署了一个 Spring 启动批处理应用程序。预期是 shell 脚本应该调用批处理作业和 return 退出代码(成功时为 0,失败时为非零)。我在下面实现了,但即使批处理失败,我在 shell 脚本中得到 0 return 代码。想知道什么是 Spring 推荐的管理这些错误代码的方法。请推荐
if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
jobExecution.setExitStatus(new ExitStatus("0"));
} else {
jobExecution.setExitStatus(new ExitStatus("1"));
}
The expectation is shell script should call batch jobs and return exit code (0 in case of success and non-zero in case of failure)
如果您 运行 您的应用具有以下条件,则这应该是默认设置:
System.exit(SpringApplication.exit(SpringApplication.run(MyApplication.class, args)));
如果要自定义退出代码,需要定义一个ExiteCodeGenerator
。这是一个例子:
@SpringBootApplication
public class ExitCodeApplication {
@Bean
public ExitCodeGenerator exitCodeGenerator() {
return () -> 42;
}
public static void main(String[] args) {
System.exit(SpringApplication.exit(SpringApplication.run(ExitCodeApplication.class, args)));
}
}
您可以在 reference documentation 中找到更多详细信息。
我在外部 Tomcat 上部署了一个 Spring 启动批处理应用程序。预期是 shell 脚本应该调用批处理作业和 return 退出代码(成功时为 0,失败时为非零)。我在下面实现了,但即使批处理失败,我在 shell 脚本中得到 0 return 代码。想知道什么是 Spring 推荐的管理这些错误代码的方法。请推荐
if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
jobExecution.setExitStatus(new ExitStatus("0"));
} else {
jobExecution.setExitStatus(new ExitStatus("1"));
}
The expectation is shell script should call batch jobs and return exit code (0 in case of success and non-zero in case of failure)
如果您 运行 您的应用具有以下条件,则这应该是默认设置:
System.exit(SpringApplication.exit(SpringApplication.run(MyApplication.class, args)));
如果要自定义退出代码,需要定义一个ExiteCodeGenerator
。这是一个例子:
@SpringBootApplication
public class ExitCodeApplication {
@Bean
public ExitCodeGenerator exitCodeGenerator() {
return () -> 42;
}
public static void main(String[] args) {
System.exit(SpringApplication.exit(SpringApplication.run(ExitCodeApplication.class, args)));
}
}
您可以在 reference documentation 中找到更多详细信息。