一、什麼是scheduledcron?
scheduledcron是一種用於定時任務調度的參數,通常在編程開發中廣泛應用。
在Java中,scheduledcron是基於Spring框架中的@Scheduled註解實現的,通過定義cron表達式,可以設置任務在特定時間或時間段內運行。
@Scheduled(cron = "0 0/10 * * * ?")//每10分鐘執行一次
public void task(){
//任務執行內容
}
在上述代碼中,我們通過cron表達式”0 0/10 * * * ?”指定了任務每10分鐘執行一次。
二、cron表達式詳解
cron表達式是一個字元串,用於表示定時任務的時間規則,分為6個欄位,每個欄位表示不同的時間單位。
以下是cron表達式各欄位的含義和取值範圍:
- 秒(0~59)
- 分(0~59)
- 小時(0~23)
- 日(1~31)
- 月(1~12)
- 星期(0~7,0和7都表示周日)
在具體實現中,我們可以根據實際需要自由組合各個時間欄位。
例如,以下cron表達式表示在每個工作日的下午4點到晚上10點之間,每隔30分鐘執行一次:
"0 0/30 16-22 ? * MON-FRI"
三、各欄位取值規則
1. 秒欄位
秒欄位可以使用的取值範圍是0~59,支持的取值方式如下:
*
:任意,表示該欄位的取值範圍為0~59。,
:枚舉,表示列舉出具體的取值。-
:範圍,表示取值範圍內的所有值。/
:步長,表示每隔多少秒執行一次任務。
例如,以下cron表達式表示在每分鐘的第15秒和30秒執行任務:
"15,30 * * * * *"
2. 分和小時欄位
分和小時欄位可以使用的取值範圍分別是0~59和0~23,支持的取值方式與秒欄位相同。
例如,以下cron表達式表示在每小時的第5分鐘和35分鐘執行任務:
"5,35 * * * *"
3. 日和月欄位
日和月欄位可以使用的取值範圍分別是1~31和1~12,支持的取值方式與秒欄位相同。
例如,以下cron表達式表示在每月的1日和15日的凌晨2點執行任務:
"0 0 2 1,15 *"
4. 星期欄位
星期欄位可以使用的取值範圍是0~7,其中0和7都表示周日,支持的取值方式與秒欄位相同。
例如,以下cron表達式表示在每周三、四、五的下午4點到5點之間,每隔10分鐘執行一次:
"0 0/10 16-17 ? * WED-THU,FRI"
四、常見的cron表達式示例
- 每天凌晨1點執行任務:
"0 0 1 * * *"
- 每周一的上午10點執行任務:
"0 0 10 ? * MON"
- 每個月的1號上午10點執行任務:
"0 0 10 1 * ?"
- 每周五下午5點半執行任務:
"30 0 17 ? * FRI"
五、總結
本文詳細介紹了scheduledcron參數的用法和cron表達式的取值規則,通過示例代碼的說明闡述了各欄位的取值方式和常用的cron表達式。
合理使用scheduledcron參數可以幫助我們更加方便地實現定時任務調度,提高工作效率。
原創文章,作者:GUTMQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332271.html