springboot 自带定时任务 报错expected single matching bean but found 2: taskExecutor,taskScheduler

在使用Springboot自带的@Scheduled定时任务时遇到NoUniqueBeanDefinitionException,错误信息提示存在两个TaskExecutor。解决方案是在配置类中实现SchedulingConfigurer和AsyncConfigurer接口,分别定制定时任务和异步任务的线程池,确保bean的唯一性。通过添加ExecutorConfig类并设置不同的线程池属性,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我遇到springboot自带的异步定时任务时报错,但不影响运行,报错信息如下:

Could not find unique TaskExecutor bean org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.core.task.TaskExecutor' available: expected single matching bean but found 2: taskExecutor,taskScheduler

解决方法是加下面的类对异步任务重新定义。我在网上找了一天也没解决,后来遇到https://www.cnblogs.com/gaomanito/p/11120164.html加入后就解决了。

import lombok.extern.slf4j.Slf4j;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Sched

@Scheduled注解是Spring框架中用来定义定时任务的注解。在上面的代码示例中,@Scheduled注解被用来标记一个方法,表示这个方法是一个定时任务。在这个示例中,定时任务的执行时间通过cron表达式来指定。cron表达式是一个字符串,它由6或7个空格分隔的字段组成,每个字段表示一个特定的时间单位,用来表示定时任务的执行时间。 在ExecutorConfig类中,通过注解@Configuration、@EnableAsync、@EnableScheduling和@Slf4j来配置线程池和定时任务的异步执行。其中@EnableAsync注解用来启用异步任务,@EnableScheduling注解用来启用定时任务的执行。 另外,在ExecutorConfig类中使用了ThreadPoolTaskExecutor来配置线程池,用于执行异步任务。而在ScheduleTask类中,通过@Scheduled注解和cron表达式来定义了一个定时任务,并在printLog方法中实现了具体的任务逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [springboot 自带定时任务 报错expected single matching bean but found 2: taskExecutor,taskScheduler](https://blog.youkuaiyun.com/tqwer/article/details/102293883)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Spring Boot学习(三):定时任务](https://blog.youkuaiyun.com/xxfamly/article/details/81219611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值