在项目开发过程中,我们经常需要执行具有周期性的任务,通过定时任务可以很好的帮助我们实现。
常见的定时任务有JDK自带的TimeTask,ScheduledExecutorService,第三方的quartz框架,elastic-job等。
今天要给大家介绍的是SpringBoot自带的定时任务框架,通过@Scheduled注解就能很方便的开启一个定时任务。
Spring Schedule框架功能完善,简单易用。对于中小型项目需求,Spring Schedule是完全可以胜任的。
TimeTask,Spring-Schedule,Quartz对比
SpringBoot配置定时任务
SpringBoot开启一个定时任务非常简单,在方法上加上@Scheduled注解跟配合@EnableScheduling注解开启就能够开启一个定时任务。
这里的cron表达式可参考前面的文章:linux 定时任务crontab命令详解
@Component
@EnableScheduling
@Slf4j
public class ScheduledTask {
@Scheduled(cron = "*/1 * * * * ?")
public void cronTask1(){
log.info("CronTask-当方法的执行时间超过任务调度频率时,调度器会在下个周期执行");
try