SpringBoot定时任务的使用
一、使用Spring Task
1.引入依赖
首先在我们pom.xml文件中引入spring-boot-starter依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
2.开启定时任务
在启动类上面加上@EnableScheduling注解即可开启定时任务。
@SpringBootApplication
@EnableScheduling
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
3.创建定时任务类
@Component
public class MySchedulerTask {
@Scheduled(cron = "*/6 * * * * ?")
public void scheduledTask1() {
System.out.println("定时任务一:每六秒执行一次,当前时间为:" + LocalTime.now());
}
@Scheduled(fixedRate = 6000)
public void scheduledTask2() {
System.out.println("定时任务二:每六秒执行一次,当前时间为:" + LocalTime.now());
}
}
运行结果
可以看到两个定时任务都已启动
二、@Scheduled注解说明
1.参数说明
@Scheduled 参数可以接受两种定时的设置,一种是我们常用的直接写 cron="*/6 * * * * ?",另一种是 fixedRate = 6000,两种写法都表示每隔六秒打印一下内容。
fixedRate 说明:
@Scheduled(fixedRate = 6000) :上一次开始执行时间点之后5秒再执行。
@Scheduled(fixedDelay = 6000) :上一次执行完毕时间点之后5秒再执行。
@Scheduled(initialDelay=2000, fixedRate=6000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次。*