spring task測試 和 序列任務
並行任務
cron表示式
springtask測試類
執行序列任務
執行並行任務
秒(0~59) 分鐘(0~59) 小時(0~23) 月中的天(1~31) 月(1~12) 週中的天 (填寫mon,tue,wed,thu,fri,sat,sun,或數字1~7 1表示mon,依次類推)
「/」字元表示指定數值的增量
「*」字元表示所有可能的值
「-」字元表示區間範圍
「,」 字元表示列舉
「?」字元僅被用於月中的天和週中的天兩個子表示式,表示不指定值
0/3 * * * * * 每隔3秒執行
0 0/5 * * * * 每隔5分鐘執行
0 0 0 * * * 表示每天0點執行
0 0 12 ? * wen 每週三12點執行
0 15 10 ? * mon-fri 每月的周一到周五10點 15分執行
0 15 10 ? * mon,fri 每月的周一和周五10點 15分執行
兩個任務之間有關聯的時候使用序列任務
在spring boot啟動類上新增註解:@enablescheduling
@component
public
class
choosecoursetask}}
//定義任務除錯策略
// @scheduled(cron="0/3 * * * * *")//每隔3秒去執行
// @scheduled(fixedrate = 3000) //在任務開始後3秒執行下一次排程
// @scheduled(fixeddelay = 3000) //在任務結束後3秒後才開始執行
public
void
task1()
catch
(interruptedexception e)
logger.
info
("***************測試定時任務1結束***************");
}//定義任務除錯策略
// @scheduled(cron="0/3 * * * * *")//每隔3秒去執行
// @scheduled(fixedrate = 3000) //在任務開始後3秒執行下一次排程
// @scheduled(fixeddelay = 3000) //在任務結束後3秒後才開始執行
public
void
task2()
catch
(interruptedexception e)
logger.
info
("***************測試定時任務2結束***************");
}}
當兩個任務之間沒有相關聯的時候,使用並行任務
建立非同步任務配置類,需要配置執行緒池實現多執行緒排程任務。
/**
* @author administrator
* @version 1.0
**/@configuration
@enablescheduling
public
class
asynctaskconfig
implements
schedulingconfigurer
, asyncconfigurer
@override
public executor getasyncexecutor()
@override
public asyncuncaughtexceptionhandler getasyncuncaughtexceptionhandler()
@override
public
void
configuretasks
(scheduledtaskregistrar scheduledtaskregistrar)
}
將@enablescheduling新增到此配置類上,springboot啟動類上不用再新增@enablescheduling 任務排程SpringTask
在企業級應用中,經常會制定一些 計畫任務 即在某個時間點做某件事情,核心是以時間為關注點,即在乙個特定的時間點,系統執行指定的乙個操作。常見的任務排程框架有quartz和springtask等。配置spring.xml 新增task註解驅動 xmlns xmlns xsi xmlns p xmlns...
SpringTask 任務排程
面試 你懂什麼是分布式系統嗎?redis分布式鎖都不會?實現定時任務的方案如下 1 使用jdk的timer和timertask實現 可以實現簡單的間隔執行任務,無法實現按日曆去排程執行任務。2 使用quartz實現 quartz 是乙個非同步任務排程框架,功能豐富,可以實現按日曆排程。3 使用spr...
SpringTask任務排程基於註解
企業級應用中,經常會制定一些 計畫任務 即在某個時間點做某件事情,核心是以時間為關注點,即在乙個特定的時間點,系統執行指定的乙個操作。電商專案中運用也比較廣泛,比如對一些秒殺商品的定時清理,從一定程度上減少了快取以及資料庫的壓力.常見的任務排程框架有quartz和springtask等。xmlns ...