SpringBoot自帶了定時任務的功能,不需要額外添加依賴。
1、在引導類上加@EnableScheduling
@SpringBootApplication @EnableScheduling //啟用定時任務 public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
2、在要定時執行的方法上加@Scheduled
這里我們隨便寫一個類,隨便寫一個方法
@Component public class Test { @Scheduled(cron = "0/5 * * * * *") //定時執行,秒分時日月年 public void out(){ System.out.println("ok"); } }
@Scheduled將一方法標識為定時方法。
cron指定時間間隔,6部分:從前往后依次為 秒分時日月年,越來越大,該部分要設置就寫成0/n的形式,不設置就寫成*。示例:
0/5 * * * * * 每隔5s執行一次
* 0/5 * * * * 每隔5s執行一次
0/30 0/1 * * * * 間隔不是1min30s,而是30s。只能設置一個部分,若設置多個部分,只有第一個設置的部分有效
0/90 * * * * * 間隔不是90s,而是60s。若數值超過合法值,會自動用最大值代替。比如秒、分的最大值是60,時的最大值是24,日的最大值是31,月的最大值12。
只能設置整的。比如說要設置秒,那只能設置為0-60s;設置分,只能設置1-60min;不能設置為分+秒,不能帶零頭,必須是整的。
定時方法每隔指定時間,系統會自動調用、執行,不需要我們手動調用。