Scheduled 定時任務總結

2021-08-21 19:52:48 字數 2131 閱讀 7345

@scheduled

作用:spring定時器(定時執行一次或定時輪詢執行一段**)

使用場景:註解在方法上

引數說明:常用引數

@scheduled 引數說明

string cron:cron表示式定義了方法執行的時間規則(網上對這個的說明很多就不墨跡了)

生成器工具位址-

例子:@scheduled(fixeddelay = 1000 * 10) //10秒傳送一次

······················scheduled1開始執行·······················2018-07-27 14:00:00

······················scheduled1結束執行·······················2018-07-27 14:00:05

······················scheduled2開始執行·······················2018-07-27 14:00:15

······················scheduled2結束執行·······················2018-07-27 14:00:20

······················scheduled3開始執行·······················2018-07-27 14:00:30

······················scheduled3結束執行·······················2018-07-27 14:00:35

例子:@scheduled(fixedrate = 1000 * 10) //10秒傳送一次

······················scheduled1開始執行·······················2018-07-27 14:00:00

······················scheduled1結束執行·······················2018-07-27 14:00:05

······················scheduled2開始執行·······················2018-07-27 14:00:10

······················scheduled2結束執行·······················2018-07-27 14:00:15

······················scheduled3開始執行·······················2018-07-27 14:00:20

······················scheduled3結束執行·······················2018-07-27 14:00:25

long initialdelay:專案啟動後不馬上執行定時器,根據initialdelay的值延時執行。

注意事項:

1.定時器的引數有兩種寫法是用cron表示式,或者使用fixeddelay、fixedrate等引數直接配置

需要注意的是 使用cron表示式的方法,在專案首次啟動後不會直接執行,而是等到執行週期才會執行

而使用第二種方式的定時器方法,在專案啟動成功後會馬上開始執行一次,再按照時間週期執行。

測試說明:

使用第一種配置方式,專案啟動後方法不會執行,而是等到執行週期到了才會執行方法

使用第二種引數方式的方法,專案啟動成功後馬上執行了一次

2.定時器預設為單執行緒,所以如果專案中使用多個定時器要配置執行緒池 

注意這裡的@enablescheduling,使用它來開啟定時器註解

@configuration

@enablescheduling

public class schedulingconfig implements schedulingconfigurer

@bean(destroymethod="shutdown")

public executor taskexecutor()

});}

}

定時任務註解 Scheduled

scheduled cron 0 0 2 每天凌晨兩點執行 void dosomethingwith 乙個cron表示式有至少6個 也可能7個 有空格分隔的時間元素。按順序依次為 秒 0 59 分鐘 0 59 小時 0 23 天 月 0 31,但是你需要考慮你月的天數 月 0 11 天 星期 1 7...

spring 定時任務 scheduled 表示式

乙個cron表示式有至少6個 也可能7個 有空格分隔的時間元素。按順序依次為 秒 0 59 分鐘 0 59 小時 0 23 天 月 0 31,但是你需要考慮你月的天數 月 0 11 天 星期 1 7 1 sun 或 sun,mon,tue,wed,thu,fri,sat 7.年份 1970 2099...

Scheduled定時任務的坑

scheduled定時任務的坑 在定時任務中,autowired 將無效 原因 scheduled 在 springboot啟動的時候,autowired 注入完成的之前執行,因此 autowired注入無效,為空。空指標異常 解決辦法 public static object getbean st...