Using @Scheduled and @EnableScheduling but gives NoSuchBeanDefinitionException

后端 未结 5 1485
情书的邮戳
情书的邮戳 2020-12-30 21:22

I have followed very simple examples online to set up a cron job in Spring yet I keep getting this error in my Tomcat startup log each and every time:

2015-05         


        
5条回答
  •  旧巷少年郎
    2020-12-30 21:56

    With Spring Boot 2.0.5, I keep getting:

    2018-11-20 11:35:48.046  INFO 64418 --- [  restartedMain] s.a.ScheduledAnnotationBeanPostProcessor : 
    No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
    

    The only way to get rid of it seems to be using SchedulingConfigurer interface in your @Configuration class like this:

    @Configuration
    public class SchedulerConfig implements SchedulingConfigurer {
        private final int POOL_SIZE = 10;
    
        @Override
        public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
            ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
    
            threadPoolTaskScheduler.setPoolSize(POOL_SIZE);
            threadPoolTaskScheduler.setThreadNamePrefix("my-scheduled-task-pool-");
            threadPoolTaskScheduler.initialize();
    
            scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
        }
    }
    

    Note: This was taken from https://www.callicoder.com/spring-boot-task-scheduling-with-scheduled-annotation/

提交回复
热议问题