gpt4 book ai didi

java - 如何运行 spring-batch 作业线程池?

转载 作者:行者123 更新时间:2023-11-29 04:43:22 26 4
gpt4 key购买 nike

我正在使用 JobLauncher.run() 启动 spring-batch 作业。问题:我怎样才能对这些调用进行线程池处理?这样一来,例如最多可以同时运行 4 个作业线程,而任何其他作业都只是排队?

    @Autowired
private JobRegistry registry;

@Autowired
private JobLauncher launcher;

Job job = registry.getJob("jobname");
launcher.run(job, params); //immediately starts the job

最佳答案

你可以设置ThreadPoolTaskExecutor作为 SimpleJobLauncher(实际启 Action 业的类)使用的任务执行器。这个执行器有一些你可以设置的属性,尤其是 maxPoolSize。

public JobLauncher createJobLauncher() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(4);
taskExecutor.setMaxPoolSize(4);
taskExecutor.afterPropertiesSet();

SimpleJobLauncher launcher = (SimpleJobLauncher) super.createJobLauncher();
launcher.setTaskExecutor(taskExecutor);
return launcher;
}

关于java - 如何运行 spring-batch 作业线程池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com