第二十一章 springboot + 定時任務


1、application.properties

#cron
job.everysecond.cron=0/1 * * * * *
job.everytensecond.cron=0/10 * * * * *

job.everyminute.cron=0 0/1 * * * *
job.everysecond2.cron=* 0/1 * * * *

注意:cron表達式

  • 第一個:每秒
  • 第二個:每10秒
  • 第三個:每分
  • 第四個:每秒(注意這個不是每分

2、CronJobTest.java

 1 package com.xxx.secondboot.cron;
 2 
 3 import java.util.Date;
 4 
 5 import org.apache.commons.lang3.time.DateFormatUtils;
 6 import org.springframework.context.annotation.Configuration;
 7 import org.springframework.scheduling.annotation.Scheduled;
 8 import org.springframework.stereotype.Component;
 9 
10 /**
11  * cron測試
12  */
13 //@Configuration
14 @Component
15 public class CronJobTest {
16 
17     int i = 0;
18 
19     @Scheduled(cron = "${job.everysecond.cron}")
20     public void everySecond() {
21         System.out.println("第" + (++i) + "次調用,每秒任務,當前時間:" + nowTime());
22     }
23     
24     private String nowTime() {
25         return DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
26     }
27 }

3、Application.java(啟動類)

此時,啟動boot,你會發現,定時任務並不會執行,還需添加一個注解。如下:

 1 package com.xxx.secondboot;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 import org.springframework.scheduling.annotation.EnableScheduling;
 6 
 7 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 8 
 9 @SpringBootApplication
10 @EnableSwagger2
11 @EnableScheduling
12 public class Application {
13     public static void main(String[] args) {
14         SpringApplication.run(Application.class, args);
15     }
16 }

注意:一定要在啟動類上添加@EnableScheduling來啟動定時任務,否則定時任務不會起作用!!!

測試:

啟動服務,查看console的輸出!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM