SpringBoot2.0實戰(34)整合Quartz之實現增刪查改動態管理任務

SpringBoot2.0實戰(34)整合Quartz之實現增刪查改動態管理任務

在前面的文章中,我們已實現了在 SpringBoot 項目中整合 Quartz 框架執行定時任務

但是需要我們手動編碼實現將任務註冊到 Quartz 框架,但是在實際項目中,我們需要對定時任務更加動態地控制。需要可以增刪查改,也可以暫停及恢復。

SpringBoot2.0實戰(34)整合Quartz之實現增刪查改動態管理任務

目標

整合 Quartz,實現使用 Quartz 定時任務增刪查改、暫停及恢復

實戰

第一步:添加依賴

引入 Spring Boot Starter 父工程

SpringBoot2.0實戰(34)整合Quartz之實現增刪查改動態管理任務

添加 spring-boot-starter-quartz 的依賴,添加後的整體依賴如下

SpringBoot2.0實戰(34)整合Quartz之實現增刪查改動態管理任務

第二步:編寫定時任務執行類

需要繼承 QuartzJobBean 類

SpringBoot2.0實戰(34)整合Quartz之實現增刪查改動態管理任務

第三步:實現增刪查改

對任務的增刪查改都是基於 Scheduler 類,SpringBoot 自帶的 QuartzAutoConfiguration 對其進行了註冊。

對任務的增刪查改操作使用工具類 QuartzUtils 來進行實現。

SpringBoot2.0實戰(34)整合Quartz之實現增刪查改動態管理任務

編寫 QuartzUtils 工具類

SpringBoot2.0實戰(34)整合Quartz之實現增刪查改動態管理任務

第四步:驗證

創建任務

請求地址 http://localhost:8080/add?job=job1&name=user&cron=0/5 * * * * ?,創建一個名稱為 job1 的任務,每五秒執行一次查看日誌

<code>execute timeJob at 06:14:39: hello user
execute timeJob at 06:14:44: hello user
execute timeJob at 06:14:49: hello user/<code>

修改任務

請求地址 http://localhost:8080/add?job=job1&name=user&cron=0/1 * * * * ?,修改名稱為 job1 的任務,變為每秒執行一次查看日誌

<code>execute timeJob at 06:14:55: hello user
execute timeJob at 06:14:56: hello user
execute timeJob at 06:14:57: hello user/<code>

暫停和重啟任務

請求地址 http://localhost:8080/pause?job=job1,暫停任務job1

請求地址 http://localhost:8080/resume?job=job1,重啟任務job1

源碼地址

本章源碼 : https://gitee.com/gongm_24/spring-boot-tutorial.git

結束語

本文基於 Quartz 框架提供的 Scheduler 類實現了對定時任務的運態管理,所有的數據和狀態都將保存在內存中,這樣並不安全。接下來我們將實現使用數據庫持久化任務數據及狀態,敬請期待。


分享到:


相關文章: