Spring Boot 定时任务简单使用教程
一、在Java开发中 目前已经有以下几种方式进行定时任务
1.Timer:jdk中自带的一个定时调度类,可以简单的实现任务执行。提供的功能比较单一,无法实现复杂的调度任务
2.ScheduledExecutorService:它是一种多线程定时方式,并发执行互不影响。
3.Spring Task:Spring提供的一个任务调度工具,支持注解和配置文件形式,支持Cron表达式,使用简单且功能强大。
4.Quartz:这是强大的调度器,可以实现比较复杂的调度功能,就是配置要比其他的复杂。
(注:因为这篇博客主要介绍在SpringBoot中使用定时任务,所以其他实现方式这里只做简单记录,有兴趣的可以去深入了解)
二、SpringBoot中定时任务使用
1.引入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
2.开始定时任务
添加注解@EnableScheduling即可开启定时任务
@SpringBootApplication
@EnableScheduling
public class TaskApplication {
public static void main(String[] args) {
SpringApplication.run(TaskApplication.class);
}
}
3.创建定时任务类
方法上加上注解@Scheduled ,注解参数可以配置时间,也要加上@Component。
@Component
public class MyTask {
@Scheduled(fixedRate = 5000)
public void testTaskFirst() {
System.out.println("定时任务一:每五秒执行一次,当前时间:"+ LocalTime.now());
}
@Scheduled(cron = "0 28 03 ? * *")
public void testTaskSecond() {
System.out.println("定时任务二:指定每天3:26执行,当前时间:"+LocalTime.now());
}
}
三、Cron表达式与生成工具
注:另外 Cron表达式生成工具地址:http://qqe2.com/cron