Spring批处理返回自定义流程退出代码

我有一个罐子,里面有几个作业,我想每次只执行一个作业,并检索一个自定义的退出代码。


例如,我有一个基本的job(retrieveErrorsJob)配置,其中一个步骤将读取输入的XML文件并将数据写入特定的数据库表中。


应用类别


@SpringBootApplication

@EnableBatchProcessing

@Import(CoreCommonsAppComponent.class)

public class Application {


    private static final Logger logger = LoggerFactory.getLogger(Application.class);

    private ConfigurationConstants constants;


    @Autowired

    public Application(ConfigurationConstants constants) {

        this.constants = constants;

    }


    @EventListener(ApplicationStartedEvent.class)

    public void idApplication()

    {

        logger.info("================================================");

        logger.info(constants.APPLICATION_NAME() + "-v." + constants.APPLICATION_VERSION() + " started on " + constants.REMOTE_HOST());

        logger.info("------------------------------------------------");

    }


    public static void main(String... args) throws Exception{

        ApplicationContext context = SpringApplication.run(Application.class, args);

        logger.info("================================================");

        SpringApplication.exit(context);

    }

}

我可以从命令行选择一项工作:


java -jar my-jar.jar --spring.batch.job.names=retrieveErrorsJob --input.xml.file=myfile.xml


Spring Batch将启动正确的作业。


问题是我需要jar返回一个自定义进程退出整数(如ExitCode.FAILED == 4etc),但我始终为零(如果ExitCode = SUCCESS或FAILED)。


根据文档,我需要实现ExitCodeMapper接口。

我找不到使用此自定义实现的方法。我可以将自定义实现设置为,CommandLineJobRunner但是如何使用此类?


素胚勾勒不出你
浏览 196回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java