面試:你懂什麼是分布式系統嗎?redis分布式鎖都不會?>>>
實現定時任務的方案如下:
1、使用jdk的timer和timertask實現
可以實現簡單的間隔執行任務,無法實現按日曆去排程執行任務。
2、使用quartz實現
quartz 是乙個非同步任務排程框架,功能豐富,可以實現按日曆排程。
3、使用spring task實現
spring 3.0後提供spring task實現任務排程,支援按日曆排程,相比quartz功能稍簡單,但是在開發基本夠用,支援註解程式設計方式。
在spring boot啟動類上新增註解:@enablescheduling
新建任務測試類testtask,編寫測試方法如下:
@component
public class choosecoursetask catch (interruptedexception e)
logger.info("***************測試定時任務1結束***************");
}}
測試:
1、測試fixedrate和fixeddelay的區別
2、測試序列執行的特點
參考 task1方法的的定義方法,再定義task2方法,此時共用兩個任務方法。
通過測試發現,兩個任務方法由乙個執行緒序列執行,task1方法執行完成task2再執行。
在專案通常是需要多個不同的任務並行去執行。
建立非同步任務配置類,需要配置執行緒池實現多執行緒排程任務。
@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任務排程
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...
SpringTask任務排程基於註解
企業級應用中,經常會制定一些 計畫任務 即在某個時間點做某件事情,核心是以時間為關注點,即在乙個特定的時間點,系統執行指定的乙個操作。電商專案中運用也比較廣泛,比如對一些秒殺商品的定時清理,從一定程度上減少了快取以及資料庫的壓力.常見的任務排程框架有quartz和springtask等。xmlns ...