1、什么是Quartz框架?
Quartz是一個開源的作業(yè)調(diào)度框架,它完全由Java寫成,并設(shè)計用于J2SE和J2EE應(yīng)用中。它提供了巨大的靈活性而不犧牲簡單性。你能夠用它來為執(zhí)行一個作業(yè)而創(chuàng)建簡單的或復(fù)雜的調(diào)度。
● Job:表示一個任務(wù)(工作),要執(zhí)行的具體內(nèi)容。
● JobDetail:表示一個具體的可執(zhí)行的調(diào)度程序,Job是這個可執(zhí)行程調(diào)度程序所要執(zhí)行的內(nèi)容,另外JobDetail還包含了這個任務(wù)調(diào)度的方案和策略。
● Trigger:代表一個調(diào)度參數(shù)的配置,什么時候去調(diào)。
● Scheduler:代表一個調(diào)度容器,一個調(diào)度容器中可以注冊多個JobDetail和Trigger。當(dāng)Trigger與JobDetail組合,就可以被Scheduler容器調(diào)度了。
Cron表達(dá)式是一個字符串,字符串以5或6個空格隔開,分為6或7個域,每一個域代表一個含義。
● Seconds(秒):可出現(xiàn)",-*/"四個字符,有效范圍為0-59的整數(shù)。
● Minutes(分鐘):可出現(xiàn)",-*/"四個字符,有效范圍為0-59的整數(shù)。
● Hours(小時):可出現(xiàn)",-*/"四個字符,有效范圍為0-23的整數(shù)。
● DayofMonth(日of月):可出現(xiàn)",-*/?L W C"八個字符,有效范圍為0-31的整數(shù)。
● Month(月):可出現(xiàn)",-*/"四個字符,有效范圍為1-12的整數(shù)。
● DayofWeek(日of星期):可出現(xiàn)",-*/?L C#"四個字符,有效范圍為1-7的整數(shù)1表示星期天,2表示星期一,依次類推。
● Year(年):可出現(xiàn)",-*/"四個字符,有效范圍為1970-2099年。
通過往表(新建一個操作日志表)里插入日志的形式:
● 運(yùn)行中:通過JobListener監(jiān)聽器來實現(xiàn)運(yùn)行時更改表信息。
● 暫停中:調(diào)用scheduler.pauseTrigger()方法時,更改表中job信息。
● 等待中:新添加的job默認(rèn)給其等待中的狀態(tài),也是更改表中的job信息但是上面這種形式的麻煩之處是得頻繁的往表里插入數(shù)據(jù)。