我有一个罐子,里面有几个作业,我想每次只执行一个作业,并检索一个自定义的退出代码。
例如,我有一个基本的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
但是如何使用此类?
相关分类