Spring定时任务
Spring自带的Scheduled Task是一个轻量级的定时任务调度器。
要使用首先要使用@EnableScheduling注解 再在Spring中bean的方法上加上@Scheduled
@Scheduled注解可以配上cron表达式,或者fixedRate,fixedDelay. fixedRate是任务开始时间的间隔时间,fixedDelay是任务结束时间与下一个任务开始时间之间的间隔时间。
默认情况下Spring使用单线程的线程池处理定时任务,因此之前配置的定时规则有可能会被违反。如果需要配置多线程执行,则简单配置一下Configuration即可,如下所示:
@Configuration
//所有的定时任务都放在一个线程池中,定时任务启动时使用不同都线程。
public class ScheduleConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
//设定一个长度10的定时任务线程池
taskRegistrar.setScheduler(Executors.newScheduledThreadPool(10));
}
}
Written on December 28, 2018