spring-boot-route(二十)Spring Task實現簡單定時任務
阿新 • • 發佈:2020-10-20
Spring Task是Spring 3.0自帶的定時任務,可以將它看作成一個輕量級的Quartz,功能雖然沒有Quartz那樣強大,但是使用起來非常簡單,無需增加額外的依賴,可直接上手使用。
一 如何實現定時任務
1. 開啟定時任務
在啟動類上增加@EnableScheduling
註解,開啟定時任務
2. 定時任務方法
使用@Scheduled
註解的方法就會被宣告成一個定時任務
@Slf4j @Component public class ScheduledTest { @Scheduled(cron = "*/1 * * * * ?") public void test1(){ log.info("這個定時任務1----"); } @Scheduled(cron = "*/1 * * * * ?") public void test2(){ log.info("這個定時任務2----"); } @Scheduled(cron = "*/1 * * * * ?") public void test3(){ log.info("這個定時任務3----"); } }
3. 註冊bean
使用@Component
將這個定時任務類註冊成一個bean元件,交給Spring容器管理。
二 cron表示式詳解
在spring 4.x中已經不支援7個引數的cronin表示式了,要求必須是6個引數。cron表示式格式如下:
{秒} {分} {時} {日期(具體哪天)} {月} {星期}
- 秒:必填項,允許的值範圍是0-59,支援的特殊符號包括
,
-
*
/
,,
表示特定的某一秒才會觸發任務,-
表示一段時間內會觸發任務,*
表示每一秒都會觸發,/
表示從哪一個時刻開始,每隔多長時間觸發一次任務。 - 分:必填項,允許的值範圍是0-59,支援的特殊符號和秒一樣,含義類推
- 時:必填項,允許的值範圍是0-23,支援的特殊符號和秒一樣,含義類推
- 日期:必填項,允許的值範圍是1-31,支援的特殊符號相比秒多了
?
,表示與{星期}互斥,即意味著若明確指定{星期}觸發,則表示{日期}無意義,以免引起衝突和混亂。 - 月:必填項,允許的值範圍是1-12(JAN-DEC),支援的特殊符號與秒一樣,含義類推
- 星期:必填項,允許值範圍是1~7 (SUN-SAT),1代表星期天(一星期的第一天),以此類推,7代表星期六,支援的符號相比秒多了
?
,表達的含義是與{日期}互斥,即意味著若明確指定{日期}觸發,則表示{星期}無意義。
如果對cron表示式不是很熟悉,可以網上找一下,有許多生產cron表示式的網站。Spring Task就簡單介紹到這了,使用起來非常方便,下一章將介紹Quartz的使用及將任務持久化儲存。
此是spring-boot-route系列的第二十篇文章,這個系列的文章都比較簡單,主要目的就是為了幫助初次接觸Spring Boot 的同學有一個系統的認識。本文已收錄至我的github,歡迎各位小夥伴star
!
github:https://github.com/binzh303/spring-boot-route
點關注、不迷路
如果覺得文章不錯,歡迎關注、點贊、收藏,你們的支援是我創作的動力,感謝大家。
如果文章寫的有問題,請不要吝惜文筆,歡迎留言指出,我會及時核查修改。
如果你還想更加深入的瞭解我,可以微信搜尋「Java旅途」進行關注。回覆「1024」即可獲得學習視訊及精美電子書。每天7:30準時推送技術文章,讓你的上班路不在孤獨,而且每月還有送書活動,助你提升硬實力!