@Scheduled(fixedRate = 2000)
public void myJob1(){
System.out.println(LocalDateTime.now()+"定时任务O(∩_∩)O");
//休眠模拟代码块运行的时间
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
fixedRate=2000表示每两秒就要执行一次,但是代码执行就需要三秒,那么这时候,就是三秒执行一次,代码执行小于2秒,那就是两秒运行一次,相当于代码块开始执行就开始计时了
执行效果:
2021-12-06T19:34:34.482定时任务O(∩_∩)O
2021-12-06 19:34:34.534 INFO 5884 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path ''
2021-12-06 19:34:34.541 INFO 5884 --- [ restartedMain] c.l.S.SpringBoot1127Application : Started SpringBoot1127Application in 17.925 seconds (JVM running for 24.182)
2021-12-06T19:34:37.497定时任务O(∩_∩)O
2021-12-06T19:34:40.505定时任务O(∩_∩)O
2021-12-06T19:34:43.515定时任务O(∩_∩)O
2021-12-06T19:34:46.529定时任务O(∩_∩)O
第二种
@Scheduled(fixedDelay = 2000)
public void myJob1(){
System.out.println(LocalDateTime.now()+"定时任务O(∩_∩)O");
//休眠模拟代码块运行的时间
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
fixedDelay,这里表示,代码执行完后,在执行定时的时间2秒,这里相当于这个任务需要5秒执行一次,定时的2秒加上,代码执行的时间3秒,相当于,代码块执行结束了才开始计时
执行效果
2021-12-06T19:44:01.418定时任务O(∩_∩)O
2021-12-06 19:44:01.500 INFO 19184 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path ''
2021-12-06 19:44:01.517 INFO 19184 --- [ restartedMain] c.l.S.SpringBoot1127Application : Started SpringBoot1127Application in 24.073 seconds (JVM running for 33.953)
2021-12-06T19:44:06.437定时任务O(∩_∩)O
2021-12-06T19:44:11.462定时任务O(∩_∩)O
2021-12-06T19:44:16.471定时任务O(∩_∩)O
2021-12-06T19:44:21.485定时任务O(∩_∩)O
2021-12-06T19:44:26.509定时任务O(∩_∩)O