博客 分类专栏 专题 成员
No qualifying bean of type ‘org.springframework.scheduling.TaskScheduler‘ available
2024-11-12 10:37:04
分类专栏: Java

tomcat启动加载spring容器时,如果spring使用TaskScheduler开启了debug模式,会造成Spring找不到默认TaskScheduler/ScheduledExecutorService的bean,从而启动的时候出现ScheduledExecutorService异常的日志。该报错不会影响定时任务的使用,但是以异常的形式在日志中存在。

解决方案

1.修改日志模式

logging.level.org.springframework.scheduling=info

2.代码注册成spring中的bean

两种方式任选一种即可,主要是完成TaskScheduler类bean的注册

@Bean
public TaskScheduler taskScheduler() {
    return new ConcurrentTaskScheduler(); //single threaded by default
}
@Bean
public TaskScheduler taskScheduler(){
	ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
	scheduler.setPoolSize(10);
	scheduler.setThreadNamePrefix("scheduled-thread-");
	return scheduler;
}

3.xml配置文件方式

<task:scheduler id=“scheduler” pool-size=“10”/>