美文网首页
Spring问题汇总-01@Async使用问题

Spring问题汇总-01@Async使用问题

作者: 惊天动地猪儿虫 | 来源:发表于2020-12-19 10:07 被阅读0次

1 提示错误expected single matching bean but found 2: applicationTaskExecutor,taskScheduler

在使用@Async@EnableAsync时,Springboot启动后会提示如下的DEBUG日志,虽然不影响运行,但是很恶心。

expected single matching bean but found 2: applicationTaskExecutor,taskScheduler

这是因为没有指定异步使用的线程池导致的。在Application类的同级目录下,新建AsyncConfig即可解决问题

@Configuration
@Slf4j
public class AsyncConfig implements AsyncConfigurer {
    @Override
    public Executor getAsyncExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(5);
        executor.setMaxPoolSize(10);
        executor.setQueueCapacity(10);
        executor.initialize();
        return executor;
    }

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

    static class MyAsyncUncaughtExceptionHandler implements AsyncUncaughtExceptionHandler {
        @Override
        public void handleUncaughtException(Throwable ex, Method method, Object... params) {
            log.error("class#method: " + method.getDeclaringClass().getName() + "#" + method.getName());
            log.error("type        : " + ex.getClass().getName());
            log.error("exception   : " + ex.getMessage());
        }
    }
}

相关文章

网友评论

      本文标题:Spring问题汇总-01@Async使用问题

      本文链接:https://www.haomeiwen.com/subject/plvqnktx.html