定时任务

79 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第24天,点击查看活动详情

学习SpringBoot定时任务用法

1.开启定时任务注解

@EnableScheduling

在应用入口文件开启定时任务注解 image.png

2.新增schedule包,专门用来处理定时任务

image.png

@Slf4j
@Component
public class BootSchedule {
    //定时任务1
    //定时任务2
    //定时任务2
    //.........
}

代码说明:

  • @Component:注入组件注解,不然springBoot无法扫描到定时任务
  • @Slf4j:注入打印日志

3.定时任务书写

例子:

    @Scheduled(fixedRate = 3000)
    public void schedule01(){
        log.info("schdule01:{}", LocalDateTime.now().format(fmt));
    }
  • fixedRate = 3000:它的间隔时间是根据上次任务开始的时候计时的。比如当方法上设置了fiexdRate=5*1000,该执行该方法所花的时间是2秒,那么3秒后就会再次执行该方法
  • @Scheduled(fixedDelay = 2000):它的间隔时间是根据上次的任务结束的时候开始计时的。比如一个方法上设置了fixedDelay=5*1000,那么当该方法某一次执行结束后,开始计算时间,当时间达到5秒,就开始再次执行该方法
  • @Scheduled(initialDelay = 2000,fixedRate = 2000):服务启动后立即延迟指定时间执行,单位是毫秒
  • @Scheduled(cron = "*/3 * * * * ?"):每隔3秒执行一次