在springboot使用注解@Scheduled
1、要使用@EnableScheduling
开启功能,可以把这个注解放在启动类上
2、执行的类上要加上:@Component(把bean注入到spring的注解都可以,类似 @Controller,@Service 等)
在执行的方法上:@Scheduled
每分钟执行一次:@Scheduled(cron = "0 */1 * * * ?")
需要注意的是,如果在多个函数上使用了@Scheduled,那么一定是一个执行完毕,才能排下一个。可以在Scheduling配置类为schedule返回一个预定的线程池,如下:
@Configuration
@EnableScheduling
public class ScheduledConfig {
public ScheduledThreadPoolExecutor scheduledExecutorService() {
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);
return executor;
}
}
这样,多个@Scheduled可以并发执行了,最高并发度是3,但是同一个@Schedule不会并发执行。