SpringTask 任務排程

2021-09-21 17:57:24 字數 1349 閱讀 2919

面試:你懂什麼是分布式系統嗎?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 ...