1. 程式人生 > >springboot 定時任務Scheduled (註解方式實現) 引數 說明

springboot 定時任務Scheduled (註解方式實現) 引數 說明

spring boot 實現定時任務首先需要在配置類註解 @enablescheduling 來開啟定時任務的支援,然後在要執行定時任務的方法上註解 @scheduled ,宣告這是一個定時任務

實現類的實現程式碼

@Component
public class SpringScheduledTaskService {
    @Scheduled (fixedRate = 2000)
    public void scheduleTaskOne(){
        System.out.println("每隔五秒執行一次的定時任務"+new Date());
    }
    @Scheduled(fixedDelay = 2000
) public void scheduleTaskTwo(){ System.out.println("上一次執行完畢時間點後1秒再次執行"+new Date()); } }

關於@scheduled 的引數有多種方式,可以根據自己的需求來進行選擇。

@Scheduled(fixedRate=1000):上一次開始執行時間點後1秒再次執行;

@Scheduled(fixedDelay=1000):上一次執行完畢時間點後1秒再次執行;

@Scheduled(initialDelay=1000, fixedDelay=1000):第一次延遲1秒執行,然後在上一次執行完畢時間點後1秒再次執行;
@Scheduled(cron=”* * * * ?”):根據書寫的cron規則執行。
關於cron 表示式
cron一共有7位,但是最後一位是年,可以留空,所以我們可以寫6位:
* 第一位,表示秒,取值0-59
* 第二位,表示分,取值0-59
* 第三位,表示小時,取值0-23
* 第四位,日期天/日,取值1-31
* 第五位,日期月份,取值1-12
* 第六位,星期,取值1-7,星期一,星期二…,注:不是第1周,第二週的意思
* 另外:1表示星期天,2表示星期一。
* 第7為,年份,可以留空,取值1970-2099
* (*)星號:可以理解為每的意思,每秒,每分,每天,每月,每年…
* (?)問號:問號只能出現在日期和星期這兩個位置,表示這個位置的值不確定,每天3點執行,所以第六位星期的位置,我們是不需要關注的,就是不確定的值。同時:日期和星期是兩個相互排斥的元素,通過問號來表明不指定值。比如,1月10日,比如是星期1,如果在星期的位置是另指定星期二,就前後衝突矛盾了。
* (-)減號:表達一個範圍,如在小時欄位中使用“10-12”,則表示從10到12點,即10,11,12
* (,)逗號:表達一個列表值,如在星期欄位中使用“1,2,4”,則表示星期一,星期二,星期四
* (/)斜槓:如:x/y,x是開始值,y是步長,比如在第一位(秒) 0/15就是,從0秒開始,每15秒,最後就是0,15,30,45,60 另:* /y,等同於0/y
* 0 0 3 * * ? 每天3點執行
* 0 5 3 * * ? 每天3點5分執行
* 0 5 3 ? * * 每天3點5分執行,與上面作用相同
* 0 5/10 3 * * ? 每天3點的 5分,15分,25分,35分,45分,55分這幾個時間點執行
cron 線上生成表示式網址

線上生成表示式