我使用以下代码结构运行一些 Java 批处理进程:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner commandLineRunner(MyServiceInstance service) {
return args -> {
service.doJob();
};
}
}
在 Spring 2.4.2 之前,我的服务/进程在完成作业后终止,因此代码很方便运行批处理作业。从 Spring 2.4.2 开始,服务实例不会终止。因此想象一下结果,我的所有实例都在我的 AWS Batch 帐户中运行,导致成本增加并阻止其他作业。
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>