2016-08-21 370 views
0

我正在Spring Spring中开发项目,没有Spring Boot ,我没有使用xml配置,而是使用了注释。 那么如何使用@Schedule(cron="bla bla...") 我应该在哪里放@EnableScheduling。 下面是我的一段代码,这是不工作:如何在非Spring Boot项目中使用@Scheduled注释

@RestController 
public class MyController { 
    @Scheduled(cron = "0 40 22 * * SUN") 
    public void routinessundayBAS1() throws EntityNotFoundException { 
     System.out.println("coming"); 
    } 
} 

回答

2

正如Jakub所说,您必须在任何@Configuration类别上添加@EnableScheduling。您可以配置调度程序以通过实现SchedulingConfigurer接口来自定义您的配置。举例:

@Configuration 
@EnableScheduling 
@ComponentScan("PACKAGES WITH SCHEDULED ANNOTATIONS") 
public class ConfigScheduler implements SchedulingConfigurer { 
    ...  
    @Bean 
    public ThreadPoolTaskScheduler taskScheduler() { 

     ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); 
     scheduler.setPoolSize(threadpoolsize); 
     scheduler.setThreadGroupName(threadgroupname); 
     scheduler.setThreadNamePrefix(threadPrefix); 
     scheduler.setAwaitTerminationSeconds(timeout);  
     return scheduler; 
    } 

    @Override 
    public void configureTasks(ScheduledTaskRegistrar registrar) {  
     TaskScheduler scheduler = this.taskScheduler(); 
     registrar.setTaskScheduler(scheduler); 
    } 
    ... 
} 
3

你需要把@EnableScheduling任何@Configuration类。

相关问题