建立spring boot
通過註解@enablescheduling
和@scheduled
實現的是靜態定時任務,不能動態新增、停止、修改等.本文通過
threadpooltaskscheduler
實現定時任務動態增刪改.
threadpooltaskscheduler
@bean
public threadpooltaskscheduler threadpooltaskscheduler()
建立乙個全域性任務記錄表
@data
public
class
tasks
建立乙個任務類
public
class
myrunnable
implements
runnable
@override
public
void
run(
)}
通過介面啟動/刪除/修改定時任務
任務的元資料資訊可以儲存在資料庫中.
@restcontroller
public
class
dynamictask
scheduledfuture<
?> future = threadpooltaskscheduler.
schedule
(new
myrunnable
(id)
,new
crontrigger
("0/5 * * * * *"))
; tasks.tasks.
put(id, future)
;return
"start";}
//根據id刪除乙個定時任務
("/stop"
)public string stop
(@requestparam
("id"
) string id)
tasks.tasks.
get(id)
.cancel
(true);
tasks.tasks.
remove
(id)
;return
"stop";}
//根據id修改定時任務
("/change"
)public string start
(@requestparam
("id"
) string id)
}
springboot動態定時任務
前提概述 springboot定時器開發特別簡單,本篇文章不做介紹 通過配置 enablescheduling和 scheduled cron 實現 動態定時器相對複雜,大概有兩種實現方式 1.讀取資料庫的cron引數,2.讀取配置檔案cron引數。我這邊採用讀取配置檔案的方式簡單的介紹一下如何使用...
SpringBoot 動態定時任務
最近在工作中遇到了springboot 動態執行定時任務的場景,通過資料庫動態指定任務的執行頻率,禁用或啟動定時任務等,通過尋找資料,成功解決了這一場景,一起分享一下吧 1 資料庫設計 create table spring scheduled cron cron id int 11 notnull...
SpringBoot動態定時任務
其實schedulingconfigurer實現方法很簡單,只需要實現schedulingconfigurer並重寫configuretasks方法,在啟動類必須加上 enablescheduling註解即可。configuration enablescheduling slf4j public c...