1. 開啟支援——在啟動類上加註解
由於spring schedule已經包含在spring-boot-starter基礎模組中了,所以不需要增加額外的依賴。
@enablescheduling
<
----
--這裡加註解開啟
public
class
}2. 建立任務類——執行週期性的工作
@component
<
----
--這裡要加註解
public
class
mywork
}
3. 定時任務的兩種型別@scheduled
(fixedrate =
5000
)// 表示每隔 5000 毫秒執行一次
public
void
reportcurrenttime()
@scheduled
(cron =
"0 30 11 ? * *"
)// 表示在指定時間執行
public
void
fixtimeexecution()
cron表示式的解釋如下
4. 自定義執行緒池
protected
void
scheduletasks()
//省略...
}
對於多個任務而言,需要增加執行緒池的執行緒數量,避免任務都放在乙個單執行緒中序列地執行,導致任務執行時間過長,執行的時效性不能保障。
注意:當方法的執行時間超過任務排程週期時,排程器會在下個週期執行方法內容。
@configuration
public
class
scheduleconfig
implements
schedulingconfigurer
@bean
(destroymethod=
"shutdown"
)public executor taskexecutor()
}
當然使定時任務並行執行還可以使用 @enableasync 和 @async 這兩個註解。
@component
@enableasync
public
class
asyncscheduledtasks
", dateformat.
format
(new
date()
));}
catch
(interruptedexception e)
}}
5. web應用中的啟動和關閉問題
我們知道通過spring載入或初始化的bean,在服務停止的時候,spring會自動解除安裝(銷毀)。但是由於執行緒是jvm級別的,如果使用者在web應用中啟動了乙個執行緒,那麼這個執行緒的生命週期並不會和web應用保持一致。也就是說,即使web應用停止了,這個執行緒依然沒有結束(死亡)。
解決方法:
@component
public
class
mytask
implements
disposablebean
//省略...
}
public
class
mytasklistenter
implements
servletcontextlistener
//省略...
}
參考料 如何在jupyter notebook中使用R語言
r語言安裝python安裝 安裝時一定要把路徑項選擇上 網上教程諸多,不再贅述。方法一推薦直接使用anaconda,上面自帶jupyter notebook而且環境配置已經設定好了 方法二以管理者身份 開啟命令提示符,轉到python的安裝路徑,採用pip命令安裝 把pip更新到最新版本,此步非必須...
如何在AndroidStudio中使用AIDL
本章節介紹如何在androidstudio中使用aidl 2.在aidl下建立乙個包,包裡建立乙個 aidl檔案,右鍵aidl new aidl aidl file 紅框就是建立完成後的樣子 3.在aidl檔案寫要被呼叫的方法,此方法不能有許可權修飾符 4.首先build下,然後建立乙個servic...
如何在IDEA中建立Spring Boot專案
1.spring boot是spring家族中的乙個全新的框架,它用來簡化spring應用程式的建立和開發過程,也可以說spring boot能簡化我們之前採用springmvc spring mybatis框架進行開發的過程。2.在以往我們採用springmvc spring mybatis框架進...