当前位置: 首页 > 知识库问答 >
问题:

Spring boot批处理作业-退出代码/返回代码

戚森
2023-03-14

我在外部Tomcat上部署了一个Spring Boot批处理应用程序。期望shell脚本调用批处理作业并返回退出代码(成功时为0,失败时为非零)。我已经在下面实现了,但是即使批处理失败,我也会在shell脚本中得到0个返回代码。想知道Spring推荐的管理这些错误代码的方法是什么。请建议

if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
            jobExecution.setExitStatus(new ExitStatus("0"));
        } else {
            jobExecution.setExitStatus(new ExitStatus("1"));
        }  

共有1个答案

黄流觞
2023-03-14

期望shell脚本调用批处理作业并返回退出代码(成功时为0,失败时为非零)

如果您运行应用程序时包含以下内容,则这应该是默认值:

    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)));
   }

}

您可以在参考文档中找到更多详细信息。

 类似资料:
  • 问题内容: 我使用Jenkins(在Windows计算机上)作业通过Ant为不同的目标编译一些代码。为此,我将对ant目标的调用包装在(windows)批处理循环中,如下所示: 那是我的第一个主意……但是即使(例如)target1失败,此代码也可以成功构建。因此,我在Windows批处理构建步骤中增加了一些内容,以获取更多概述。另外,我还用了cecekdout代码来获得与Jenkins本地计算机相

  • 我有一个Spring批处理tasklet,我不知道如何从中失败。我想检查某些参数,如果它们不存在,则在该步骤中使作业失败。 注释掉的行是我试图让工作退出的行。有人有过这样的经历吗?

  • 我想运行"sudo whoami"命令在PHP脚本。 我已经添加了下一行到 /etc/sudoers Apache ALL=(ALL)NOPASSWD:/usr/bin/whoami 然后执行脚本 $result为空$return_var==1 终端命令 返回“root”。 PHP 5.6.38 CentOS 7.5。1804

  • 当我尝试用运行名为database的mongoDB映像时,我得到exitcode100。我在网上查看了一些信息,发现了关于exitcode100:时。我以前也遇到过这个问题,并且能够通过来解决这个问题,但是当我现在这样做时,得到的是相同的exitcode。 我已经尝试建立的形象再次,但当我这样做,我要么得到相同的exitCode或exitCode 51,我不能找到任何信息在网上。 UsertoEv

  • 所以我最近为java开发人员安装了eclipse。这一个安装后,我尝试启动eclipse,但它只是这样说 任何人都知道如何修复我安装了JDK14.0.4,我安装了最新的java,因为它说没有更新。 我自己试着对它做一些研究,有人说,以确保您的java版本与eclipse版本相同,当我测试时,我认为我有32位的java,但我有一台64位的计算机,我安装了64位的eclipse。我重新安装了java,

  • java已启动但返回退出代码=-805306369 C:\windows\system32\javaw.exe-jar C:\program files\java\eclipse-jee-helios-sr2-win32-x86_64\eclipse\plugins\org.eclipse.equinox.launcher_1.11.1.r36x_v20101122_1400.jar