scheduled 定时任务使用简单,也可满足日常的开发需求。
使用的时候不需要引入别的jar包,启动类上添加@EnableScheduling就可以开启定时功能
@SpringBootApplication
@EnableScheduling
public class RunApplication {
public static void main(String[] args) {
SpringApplication.run(RunApplication.class, args);
}
有两种设置时间的方式
1、可以直接设置毫秒数
@Scheduled(fixedRate = 5000) //表示 每隔5秒执行一次
public void reportCurrentTime() {
System.out.println("每隔五秒钟执行一次: " + dateFormat.format(new Date()));
}
2. 使用cron方式,直接在代码中写
@Scheduled(cron = "0 0 8 * * ?")//每天凌晨8点执行
public void test(){
System.out.println("this is "+ (i++) + "times!");
}
或者读取配置文件
@Scheduled(cron = "{elasticsearch.autotime}")
public void test(){
System.out.println("this is "+ (i++) + "times!");
}
yml配置文件中:
elasticsearch:
# autotime: "*/5 * * * * ?" #每过5秒执行一次
# autotime: "0 */5 * * * ?" #每过5分钟执行一次
autotime: "0 0 0/1 * * ?" #每过一个小时执行一次