Spring的@Scheduled 注解可以处理一些简单的定时任务,如统计数量、数据库备份等。其配置内容和实际例子如下所示:
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.0</version>
</dependency>
@EnableScheduling 注解
在启动类添加@EnableScheduling注解开启定时任务
@SpringBootApplication
@EnableScheduling
public class ScheduledApplication {
public static void main(String[] args) {
SpringApplication.run(ScheduledApplication.class,args);
}
}
配置定时任务
@Component
public class MySchedule {
@Scheduled(fixedDelay = 1000)
public void fixedDelay(){
System.out.println("fixedDelay:"+new Date());
}
@Scheduled(fixedRate = 2000)
public void fixedRate(){
System.out.println("fixedRate:"+new Date());
}
@Scheduled(initialDelay = 1000, fixedRate = 2000)
public void initialDelay(){
System.out.println("initialDelay:"+new Date());
}
@Scheduled(cron = "0 * * * * ?")
public void cron(){
System.out.println("cron:"+new Date());
}
}
@Scheduled 开启一个定时任务,fixedDelay =1000,表示在当前任务执行结束1 秒后开启另一个任务;
fixedRate=2000表示在当前任务开始执行 2 秒后开启另一个定时任务,initialDelay=1000则表示首次执行的延迟时间
运行结果(控制台)