gpt4 book ai didi

java - 如何使用 AsyncConfigurer 定义多个合格的线程池

转载 作者:行者123 更新时间:2023-11-30 02:44:49 41 4
gpt4 key购买 nike

Spring 框架有一个接口(interface) AsyncConfigurer(和 AsyncConfigurerSupport),用于配置拥有线程池执行器并能够异步运行方法(使用 @Async)所需的一切。

但通常情况下,在不同的功能之间共享同一个线程池并不是一种好的做法,因此通常我用一个名称来限定它们,并在异步注释中指定该名称,以便它使用一个特定的线程池。

事实是,我想通过这个方便的接口(interface) AsyncConfigurer 来配置它们,并且不失去资格,但我无法做到。

试试这个:

    @Configuration
@EnableAsync
public class PusherAsyncConfigurerSupport extends AsyncConfigurerSupport {
@Autowired
ExecutorConfig config;
@Override
@Qualifier(value = "executorOne")
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(config.getCorePoolSize());
...
executor.initialize();
return executor;
}

@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return new MyAsyncUncaughtExceptionHandler();
}
}

当放入异步注释时,该线程池仍然无法识别。

那么,这样配置几个线程池需要什么呢?或者根本就不是这样?

最佳答案

使用@Bean注解进行标记

@Bean
@Qualifier(value = "executorOne")
public Executor getAsyncExecutor() {
//..
return executor;
}

关于java - 如何使用 AsyncConfigurer 定义多个合格的线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40504870/

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