定时任务 || Cron表达式
Spring內置的Spring?Task,這是Spring3.0加入的定時任務功能。
使用注解的方式定時啟動爬蟲進行數據爬取。
我們使用的是@Scheduled注解,其屬性如下:
1)cron:cron表達式,指定任務在特定時間執行;
2)fixedDelay:上一次任務執行完后多久再執行,參數類型為long,單位ms
3)fixedDelayString:與fixedDelay含義一樣,只是參數類型變為String
4)fixedRate:按一定的頻率執行任務,參數類型為long,單位ms
5)fixedRateString:?與fixedRate的含義一樣,只是將參數類型變為String
6)initialDelay:延遲多久再第一次執行任務,參數類型為long,單位ms
7)initialDelayString:與initialDelay的含義一樣,只是將參數類型變為String
8)zone:時區,默認為當前時區,一般沒有用到
這里的使用比較簡單,固定的間隔時間來啟動爬蟲。例如可以實現項目啟動后,每隔一小時啟動一次爬蟲。
但是有可能業務要求更高,并不是定時定期處理,而是在特定的時間進行處理,這個時候之前的使用方式就不能滿足需求了。例如要在工作日(周一到周五)的晚上八點執行。這時我們就需要Cron表達式了。
Cron表達式
cron的表達式是字符串,實際上是由七子表達式,描述個別細節的時間表。這些子表達式是分開的空白,代表:
1. ?Seconds
2. ?Minutes
3. ?Hours
4. ?Day-of-Month
5. ?Month
6. ?Day-of-Week
7.??Year (可選字段)
例 ?"0 0 12 ? * WED" 在每星期三下午12:00 執行,
?“*” 代表整個時間段
每一個字段都有一套可以指定有效值,如
Seconds (秒) :可以用數字0-59 表示,
Minutes(分) :可以用數字0-59 表示,
Hours(時) :可以用數字0-23表示,
Day-of-Month(天) :可以用數字1-31 中的任一一個值,但要注意一些特別的月份
Month(月) :可以用0-11 或用字符串:
JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
Day-of-Week(天) :可以用數字1-7表示(1 = 星期日)或用字符口串:
SUN, MON, TUE, WED, THU, FRI, SAT
“/”:為特別單位,表示為“每”如“0/15”表示每隔15分鐘執行一次,“0”表示為從“0”分開始, “3/20”表示表示每隔20分鐘執行一次,“3”表示從第3分鐘開始執行
“?”:表示每月的某一天,或第周的某一天
“L”:用于每月,或每周,表示為每月的最后一天,或每個月的最后星期幾如“6L”表示“每月的最后一個星期五”
總結
以上是生活随笔為你收集整理的定时任务 || Cron表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三种去重方式——HashSet、Redi
- 下一篇: 网页去重||SimHash(高效的文本相