基於quartz的任務管理雛形

使用quartz主要是爲了完成任務調度功能,百度一下,基本都是介紹各類原理和簡單的使用示例,能夠實現單獨使用或者集成spring使用。對於單獨使用quartz,且以調度平臺的方式使用則介紹很少。下面展現一下簡單的調度平臺的開發!(問題還有不少,慢慢解決吧)mysql

結合搜索到的內容,本地搭建了一個簡單的平臺示例。git

代碼碼雲地址:https://gitee.com/seguzhizi/JobManagerspring

簡單看下:sql

  • 展現任務列表:

http://localhost:8080/JobManager/showtomcat

暫無任務eclipse

 

  • 添加任務:

界面還沒作,能夠在本地經過直接訪問url來添加:url

http://localhost:8080/JobManager/jobA/jobGroupA/addip

具體路徑能夠參見SchedulerController方法開發

添加以後,自動跳轉到展現界面:rem

後臺已在運行,部分輸出以下:

  • 暫停

點擊暫停以後,再也不繼續運行,輸出中止

界面展現的狀態已變化:PAUSED

  • 當即執行一次

此時界面展現可能有點bug,展現如圖:

刷新一下就OK了

  • 恢復

再次點擊恢復:

狀態變爲NORMAL,後臺輸出也正常了

  • 刪除

直接刪除便可

  • 修改表達式

這個直接修改quartz庫中cron表的對應表達式便可,暫未實現

---------------

1:checkout代碼導入eclipse

2:本地開啓mysql,執行main/resources/quartz.sql

3:部署至tomcat直接啓動(導入工程不報錯)

4:訪問便可

---------------

幾個點說明下:

1:注意quartz.properties的配置

2:注意SchedulerFactoryBean的bean配置

3:一個job實例對應多個trigger,可是一個trigger只能觸發一個job實例

4:quartz的scheduler是一個大管家,在service中也能夠看到調度任務都是由它來控制的(將其注入的)

5:目前添加任務時,Class參數是寫死的,須要擴展

6:這個是本地的job實例,還有一個remote類型的實例,目前尚未試,若是有意引入定時任務管理系統,能夠考慮碼雲上的xxl-job開源系統,比較好用

相關文章
相關標籤/搜索