springboot動態定時任務

2021-10-06 01:47:29 字數 1436 閱讀 3542

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...