@Scheduled
使用 @Scheduled 非常容易,直接创建一个 Spring Boot 项目,并且添加 web 依赖 spring-boot-starter-web,项目创建成功后,添加 @EnableScheduling 注解,开启定时任务:
@SpringBootApplication
@EnableScheduling //开启定时任务
public class TimedTaskApp {
public static void main(String[] args) {
SpringApplication.run(TimedTaskApp.class,args);
}
}
下面配置定时任务:
@Component
public class TimedTask {
@Scheduled(fixedRate = 1000)
public void task1(){
System.out.println("任务1");
}
@Scheduled(fixedRate = 2000)
public void task2(){
System.out.println("任务2");
}
public void task3(){
System.out.println("任务3");
}
}
首先使用 @Scheduled 注解开启一个定时任务。
1. fixedRate 表示任务执行之间的时间间隔,具体是指两次任务的开始时间间隔,即第二次任务开始时,第一次任务可能还没结束。
2. fixedDelay 表示任务执行之间的时间间隔,具体是指本次任务结束到下次任务开始之间的时间间隔。
3. initialDelay 表示首次任务启动的延迟时间。
4. 所有时间的单位都是毫秒。
@Scheduled 注解也支持 cron 表达式.