1. 什麼是Quartz 框架
Quartz 是一個開源的做業調度框架,它徹底由 Java 寫成,並設計用於 J2SE 和 J2EE 應用中。它提供了巨大的靈活性而不犧牲簡單性。你可以用它來爲執行一個做業而建立簡單的或複雜的調度。app
2. 配置文件 applicationContext_job.xml各個屬性做用
(1)Job:表示一個任務(工做),要執行的具體內容。框架
(2)JobDetail:表示一個具體的可執行的調度程序,Job 是這個可執行程調度程序所要執行的內容,另外JobDetail還包含了這個任務調度的方案和策略。設計
(3)Trigger:表明一個調度參數的配置,何時去調。日誌
(4)Scheduler:表明一個調度容器,一個調度容器中能夠註冊多個 JobDetail 和 Trigger。當 Trigger 與JobDetail組合,就能夠被Scheduler容器調度了。xml
3. Cron表達式詳解
Cron表達式是一個字符串,字符串以5或6個空格隔開,分爲6或7個域,每個域表明一個含義。字符串
域:io
Seconds(秒):可出現", - * /"四個字符,有效範圍爲0-59的整數。
Minutes(分鐘):可出現", - * /"四個字符,有效範圍爲0-59的整數 。
Hours(小時):可出現", - * /"四個字符,有效範圍爲0-23的整數 。
DayofMonth(日of 月):可出現", - * / ? L W C"八個字符,有效範圍爲0-31的整數。
Month(月):可出現", - * /"四個字符,有效範圍爲1-12的整數。
DayofWeek(日of 星期):可出現", - * / ? L C #"四個字符,有效範圍爲1-7的整數1表示星期天,2表示星期一, 依次類推。
Year(年):可出現", - * /"四個字符,有效範圍爲1970-2099年。
4. 如何監控 Quartz 的 job 執行狀態:運行中,暫停中,等待中?
經過往表(新建一個操做日誌表)裏插入日誌的形式:容器
1)運行中:經過 JobListener 監聽器來實現運行時更改表信息。
2)暫停中:調用 scheduler.pauseTrigger()方法時,更改表中 job 信息。
3)等待中:新添加的 job 默認給其等待中的狀態,也是更改表中的 job 信息 可是上面這種形式的麻煩之處是得頻繁的往表裏插入數據。
監控