【发布时间】:2022-07-05 01:05:29
【问题描述】:
我有一个 spring 批处理代码库,它在其 BatchConfig 中定义了多个 Job bean。我在正确的位置使用spring.batch.job.enabled=false 禁用了自动运行。基本大纲是这样的:
我的批处理配置如下所示:
@Configuration
public class BatchConfiguration {
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Bean
public Job myTestJob1() {...}
@Bean
public Job myTestJob2() {...}
}
主类是:
@SpringBootApplication
@EnableBatchProcessing
public class BatchProcessingApplication {
public static void main(String[] args) throws Exception {
System.exit(SpringApplication.exit(SpringApplication.run(BatchProcessingApplication.class, args)));
}
}
当我尝试像这样运行 jar 时,它将成功启动并退出而不运行作业:
java -jar batch.jar -spring.batch.job.names=myTestJob1
据我所知,这应该工作,但事实并非如此。我已经尝试将@EnableBatchProcessing 移动到 BatchCongfig 类,它也不起作用。
【问题讨论】:
-
设置 spring.batch.job.enable=false 禁用 BatchAutoConfiguration JobLauncherApplicationRunner 配置,该配置使用 spring.batch.job.names 属性来确定要运行的作业。看看这里配置的第一个 Bean:github.com/spring-projects/spring-boot/blob/main/…
标签: java spring spring-batch