spring自帶定時任務處理器@scheduled註解,所以springboot也可以用@scheduled實現定時任務,第二種方式是使用quartz框架
1.首先在你的springboot專案的pom檔案中引入spring-boot-start-web,
2.然後在啟動類裡新增@enablescheduling,開啟定時任務
@enablescheduling
public
class
}
3.新建乙個定時任務類,加上@component註解
@component
public
class
scheduledtask
4.寫定時任務的方法新增到定時任務類中,在方法上加上@scheduled()註解,在@scheduled的括號裡可以用cron七子表示式來定義定時任務時間執行規則,也可以用fixedrate來定義定時任務時間執行規則,下面為用法
fixedrate 表示任務執行之間的時間間隔,具體是指兩次任務的開始時間間隔,即第二次任務開始時,第一次任務可能還沒結束。
fixeddelay 表示任務執行之間的時間間隔,具體是指本次任務結束到下次任務開始之間的時間間隔。
initialdelay 表示首次任務啟動的延遲時間。
所有時間的單位都是毫秒,例如
@scheduled
(fixedrate=
5000
)public
void
taskfixedrate()
cron表示式(0 0 0 * * ?)括號中每一位數依次表示 秒|分|時|日|月|周|年
具體取值
秒 0-59 必填 允許萬用字元 - * /
分 0-59 必填 允許萬用字元- * /
時 0-23 必填 允許萬用字元- * /
日 1-31 必填 允許萬用字元- * ? / l w
月 1-12 必填 允許萬用字元- * /
周 1-7 必填 允許萬用字元- * ? / l #(周與日必須有乙個為?,避免衝突)
年 1970-2099 非必填 允許萬用字元- * /
@scheduled
(cron=
"0 1 0 * * ?"
)public
void
taskcron()
萬用字元的含義
? 表示不指定值,即不關心某個欄位的取值時使用。需要注意的是,月份中的日期和星期可能會起衝突,因此在配置時這兩個得有乙個是 ?
* 表示所有值,例如:在秒的字段上設定 *,表示每一秒都會觸發
, 用來分開多個值,例如在周字段上設定 "mon,wed,fri" 表示周一,週三和周五觸發
- 表示區間,例如在秒上設定 "10-12",表示 10,11,12秒都會觸發
/ 用於遞增觸發,如在秒上面設定"5/15" 表示從5秒開始,每增15秒觸發(5,20,35,50)
# 序號(表示每月的第幾個週幾),例如在周字段上設定"6#3"表示在每月的第三個週六,(用 在母親節和父親節再合適不過了)
周字段的設定,若使用英文本母是不區分大小寫的 ,即 mon 與mon相同
l 表示最後的意思。在日字段設定上,表示當月的最後一天(依據當前月份,如果是二月還會自動判斷是否是潤年), 在周字段上表示星期六,相當於"7"或"sat"(注意週日算是第一天)。如果在"l"前加上數字,則表示該資料的最後乙個。例如在周字段上設定"6l"這樣的格式,則表示"本月最後乙個星期五"
w 表示離指定日期的最近工作日(周一至周五),例如在日字段上設定"15w",表示離每月15號最近的那個工作日觸發。如果15號正好是週六,則找最近的周五(14號)觸發, 如果15號是週未,則找最近的下周一(16號)觸發,如果15號正好在工作日(周一至周五),則就在該天觸發。如果指定格式為 "1w",它則表示每月1號往後最近的工作日觸發。如果1號正是週六,則將在3號下周一觸發。(注,"w"前只能設定具體的數字,不允許區間"-")
l 和 w 可以一組合使用。如果在日字段上設定"lw",則表示在本月的最後乙個工作日觸發(一般指發工資 )
待續。。。 SpringBoot 定時任務
第一步 在啟動類中加入如下註解 enablescheduling public class public static void main string args 注意 enablescheduling必須加,否則無法開啟定時任務 第二步 建立定時任務 component public class ...
Spring boot定時任務
最近做專案,需要使用定時任務,半個小時去更新redis資料,於是便學習了一下經驗。希望可以幫到你們。定時任務可使用三種 created by fx on 2017 9 4.component allargsconstructor public class featuredatatask 實現乙個任務...
Spring boot 定時任務
1.在啟動類上加 enablescheduling註解 package com.example.demo import org.springframework.scheduling.annotation.enablescheduling enablescheduling public static ...