多个spring批处理作业

多个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

我在Spring Boot中使用@Scheduled注释来触发多个作业

以下是代码片段:

    @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;
 }

您是否使用默认的
作业启动器
?如果是,默认情况下它是同步的。