首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多弹簧批作业

多弹簧批作业
EN

Stack Overflow用户
提问于 2015-05-19 17:50:49
回答 1查看 2.3K关注 0票数 1

我正在使用Spring中的@调度注释来触发多个作业。

下面是代码片段:

代码语言:javascript
复制
    @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.
       }
    }

但是,这将触发连续的两个作业,而不是并行的,即应用程序在开始使用参数为"B“的作业之前等待参数"A”的作业完成。

有办法并行运行这些作业吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 06:24:42

您可以在某个配置文件中定义您的JobLauncher,并将SimpleAsyncTaskExecutor设置为任务执行器,它将运行作业异步(而不是等待一个完成才能启动下一个作业)。

以下是来自以下内容的代码片段:

代码语言:javascript
复制
@Bean
public JobLauncher jobLauncher() {
    final SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
    jobLauncher.setJobRepository(jobRepository);
    final SimpleAsyncTaskExecutor simpleAsyncTaskExecutor = new SimpleAsyncTaskExecutor();
    jobLauncher.setTaskExecutor(simpleAsyncTaskExecutor);
    return jobLauncher;
 }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30332722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档