有時在開發中我們會碰到,比如每週五定期分析一下日誌,你可以人工手動到點去分析,但這樣的話,那效率…一般都是寫一些程序或者腳本到了指定的時間去分析對應的日誌文件,這個要怎麼做呢?這一篇博客就來簡單記錄一下。
這裏要引入一個註解(@Scheduled
),在需要的方法上直接添加就可以了,它裏面有一個屬性cron
,裏面可以填寫cron表達式。這是個啥呢,舉個例子:
@Scheduled(cron = "0 10 10 * * mon-fri")
這個就表示在每週一—週五(mon-fri)的每天10點10分0秒運行一次該方法,它裏面是這樣子的 (秒數 分數 小時數 每個月的第幾天 第幾個月 星期幾),再舉一個例子:
@Scheduled(cron = "17 10 15 3 * *")
這表示,每個月的3號15:10:17執行一次該方法。裏面還有一些通配符可以使用,關於這些用法,這裏有兩個表格,需要時作查閱即可:
接下來我們進入編碼階段,編個小demo測試一下.
service:
@Service
public class HelloService {
@Scheduled(cron = "0-2 * * * * *") //表示每一分鐘的0,1,2秒都運行一次,即一分鐘運行3次
public void hello(){
System.out.println("測試定時任務......");
}
}
因爲是後臺自動定時執行,所以無需controller
即可。到這裏還差一步,要去主啓動類中開啓定時任務的支持.只需在主啓動類中添加該註解即可:
@EnableScheduling
之後運行程序,觀察控制檯:
成功,該屬性的其他用法可以根據需求進行修改。