spring回顧系列:定時任務

spring3之後實現定時任務非常簡單,只需使用@EnableScheduling+@Configuration來開啓定時任務的支持和聲明這是一個配置類,需要spring容器在啓動時加載,然後在具體的定時方法上使用@Scheduled即可。

@Scheduled有這麼幾個參數,fixRate , fixDelay , cron

  1. fixRate:fixRate的計時是相對於系統時間的,即每隔一定時間執行;
  2. fixDelay:也是每隔一定時間執行一次。但是fixDelay是相對於上一次調用時間,因此它受其它程序調用的影響;

  3. cron:按照指定時間執行。

cron的規則:

       每隔5秒執行一次:*/5 * * * * ?
       每隔1分鐘執行一次:0 */1 * * * ?
       每天23點執行一次:0 0 23 * * ?
       每天凌晨1點執行一次:0 0 1 * * ?
       每月1號凌晨1點執行一次:0 0 1 1 * ?
       每月最後一天23點執行一次:0 0 23 L * ?
       每週星期天凌晨1點實行一次:0 0 1 ? * L
       在26分、29分、33分執行一次:0 26,29,33 * * * ?

以上六個部分分別表示:秒、分、時、日、月、周

-:表示範圍;

*:表示通配;

/:表示在左邊的時間匹配後間隔右邊的時間;

?:一般表示周的通配。


  • 示例

@Configuration
@EnableScheduling//開啓定時任務的支持
public class SchedulingConfig {
	
	@Scheduled(cron = "0 5 1 * * ?") // 每天1點5分執行
	public void scheduler1() {
		System.out.println(">>>>>>>>> 每天1點5分報表生成成功");
	}
	
	@Scheduled(cron = "0 0/30 * * * ?") // 每30分鐘執行一次
	public void scheduler2() {
		System.out.println("每30分鐘取消訂單"+num+"條");
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章