多个spring批处理作业
我在Spring Boot中使用@Scheduled注释来触发多个作业 以下是代码片段:多个spring批处理作业,spring,spring-boot,spring-batch,Spring,Spring Boot,Spring Batch,我在Spring Boot中使用@Scheduled注释来触发多个作业 以下是代码片段: @EnableBatchProcessing @EnableScheduling public class Config extends DefaultBatchConfigurer{ @Autowired JobLauncher launcher; @Scheduled public
@EnableBatchProcessing
@EnableScheduling
public class Config extends DefaultBatchConfigurer{
@Autowired
JobLauncher launcher;
@Scheduled
public void run(){
String[] argList = {"A", "B"};
for(String char : argList){
launcher.run(job(),
new JobParametersBuilder().
addString("char", char).
toJobParameters());
}
}
public Job job(){
//Job definition is here.
}
}
但是,这会连续触发2个作业,而不是并行触发,即应用程序在启动参数为“B”的作业之前,等待参数为“A”的作业完成
有没有办法让这些作业并行运行
谢谢 您可以在一些配置文件中定义
作业启动器
,并将SimpleAsynctaskeExecutor
设置为任务执行器,该执行器将异步运行作业(不等待一个作业完成以启动下一个作业)
以下是以下代码片段:
@Bean
public JobLauncher jobLauncher() {
final SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(jobRepository);
final SimpleAsyncTaskExecutor simpleAsyncTaskExecutor = new SimpleAsyncTaskExecutor();
jobLauncher.setTaskExecutor(simpleAsyncTaskExecutor);
return jobLauncher;
}
您是否使用默认的
作业启动器
?如果是,默认情况下它是同步的。