简单实现demo:每5秒做一次输出(打印时间)
代码如下:
@SpringBootApplication
@EnableScheduling//这个注解一定要加,不然定时任务不执行
public class EchoApplication {
public static void main(String[] args) {
SpringApplication.run(EchoApplication.class, args);
}
}
@Component
public class ScheduledTasks {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
@Scheduled(fixedRate = 5000)//运行周期时间可配
public void reportCurrentTime() {
System.out.println("现在时间:" + dateFormat.format(new Date()));
}
}
运行EchoApplication的main方法 结果如下:
现在时间:16:21:11
现在时间:16:21:16
现在时间:16:21:21
现在时间:16:21:26
======完美分隔符========
【扩展】
@Scheduled(fixedRate = 5000) 上次执行时间点 后的5秒钟,例如 在11秒开始执行,耗时2秒,下次 在16秒再执行
@Scheduled(fixedDelay= 5000) 上次执行完 后的5秒再执行 比如在11秒开始执行,耗时2秒,下次 在18秒再执行
@Scheduled(initialDelay=1000, fixedRate=5000) 第一次延迟1秒执行 第二次5秒后执行
@Scheduled(cron="*/5 * * * * *") cron表达式规则执行