用quartz實現任務的動態配置(一)

2021-08-29 10:52:26 字數 912 閱讀 5760

此文是研究生時做專案時搞的乙個小模組,隨便拿來練練手的。其實quartz的表示式是最強大的,沒必要搞什麼介面。當時咋實現的已經想不起來了,見諒。。。讓此文沉了吧。

[b]關鍵字定義[/b]

任務:需要由quartz的排程器自動排程執行的程式,實現job介面。

[b]框架[/b] struts + spring + hibernate(本功能沒用到資料庫,因此不涉及hibernate)

[b]實現功能[/b]

1.可以通過spring的配置檔案配置quartz的排程器和繫結了[b]任務[/b]的觸發器,並可以設定任務的初始觸發時間(此處我採用功能強大的cron 表示式來設定觸發時間)。

2.可以在service類裡注入已經做了初始設定的scheduler,通過reschedulejob方法,動態改變觸發時間。

[b]介面預覽[/b]

[img]

圖1 進入設定頁面顯示效果

[img]

[img]

[img]

圖2、3、4 選擇不同設定方式的顯示效果

[b]開發過程[/b]

1.提出要求:

a.系統要有通過配置檔案設定的預設觸器(起始時間和終止時間可不設,由quartz的

scheduler來設預設值。

b.使用者能動態輸入起始時間、終止時間

c.使用者可選擇設定簡單的觸發週期或輸入cron表示式來設定複雜觸發週期

2.設計介面

3.寫formbean=>action=>服務類

5.自己寫validator類處理特殊但又有共性的檢驗(如比較兩個日期先後、判斷某個日期是否比當前時間晚等)

6.在action裡補充只能等到處理業務邏輯時才能檢驗的**(此處如檢驗cron表示式要等到設定到scheduler後才能檢驗是否有問題,而scheduler只應該在action裡得到)。

用crontab實現任務定時排程

首先,確認自己的使用者許可權,沒個使用者會有自己的crontab的檔案 具體檔案的路徑放在 var spool cron 下面,如果是root使用者,就會有個root檔案,root使用者的定時排程任務就放在root裡面 另外,要讓這個任務生效,需要啟動crond這個守護程序,啟動命令是 sbin s...

用Redis實現分布式鎖 與 實現任務佇列

這一次總結和分享用redis實現分布式鎖 與 實現任務佇列 這兩大強大的功能。先扯點個人觀點,之前我看了一篇博文說的文章大部分都是分享 博文裡強調說分享思路比分享 更重要 貌似大概是這個意思,若有誤請諒解 但我覺得,分享思路固然重要,但有了思路,卻沒有實現的 那會讓人覺得很浮誇的,在工作中的程式猿都...

quartz動態增傷改查任務實現

下面這篇是新增引數的 框架是我自己搭的,springboot mybatisplus fastjson quartz的 全部來自上面的兩篇部落格 需要注意的幾點 首先,先搭建好springboot專案,然後參照博主的部落格內容,1.都寫對,註解別忘了加 2.其中quartz的8個表要建立好 3.把q...