-
start();? ? ? ? ? ?開啟
standby();? ? ? 掛起,可以使用start()再次開啟
shutdown();? ?完全關(guān)閉scheduler,不可以被start()所開啟
查看全部 -
調(diào)度器:Scheduler
任務(wù):Job和JobDetail
觸發(fā)器:Trigger
查看全部 -
通配符說明
查看全部 -
“/”是每的意思? 0/5就是表達(dá)每五秒鐘? “,”是“或”的關(guān)系 14,18表示14點(diǎn)和18點(diǎn)
查看全部 -
這里的L? 代表最后 last? 所以6L表示最后的星期五
查看全部 -
這里的#號(hào)是第的意思,6代表的是星期五? 6#3 表示的是 第三周的星期五
查看全部 -
這里的年可以缺省,就可以不寫
查看全部 -
這里的cron表達(dá)式中的*代表“每X”,如這里的* * *。。是每秒每分每小時(shí)這樣的
查看全部 -
完整的Job使用流程查看全部
-
JobDataMap的概念和使用查看全部
-
Job和JobDetail的重要屬性查看全部
-
將JobDetail和Trigger綁定到Scheduleer中去查看全部
-
創(chuàng)建JobDetail和Trigger查看全部
-
Job的創(chuàng)建查看全部
-
Quartz用到的設(shè)計(jì)模式
查看全部 -
鏈?zhǔn)骄幋a?
查看全部 -
job、trigger、scheduler
查看全部 -
通配符說明
查看全部 -
cron tigger
查看全部 -
請(qǐng)問為什么是先啟動(dòng)再綁定,感覺不符合邏輯啊
查看全部 -
Quartz與Spring整合(前提搭建好Spring環(huán)境)
步驟1:pom文件引入jar包,Quartz需要使用Spring的上下文。它還需要使用到Spring的事物。其次就是Quartz的jar包了。
Spring結(jié)合Quartz實(shí)現(xiàn)定時(shí)任務(wù):
方式一:MethodInvokingJobDetailFactoryBean適合調(diào)用特定bean方法時(shí)很方便。
如圖:MethodInvokingJobDetailFactoryBean可以通過dispatcherServlet.xml進(jìn)行配置,通過它就可以創(chuàng)建JobDetail,其中myBean相當(dāng)于實(shí)現(xiàn)定時(shí)任務(wù)的類,注入的printMessage為定時(shí)任務(wù)的方法名。之后再結(jié)合Trigger就可以實(shí)現(xiàn)定時(shí)的執(zhí)行。
方式二:JobDetailFactoryBean支持傳入一些參數(shù)。
查看全部 -
定時(shí)任務(wù)的配置形式(聲明式的配置,因?yàn)檫@樣可以簡(jiǎn)化代碼的實(shí)現(xiàn),這樣就可以將配置信息與代碼相分離,便于程序的維護(hù))
StdScheduler是通過讀取quartz.properties配置文件信息進(jìn)行加載的。
quartz.properties的位置和加載順序:默認(rèn)情況下Quartz運(yùn)行時(shí)加載的是工程目錄下的quartz.properties,如果工程目錄下沒有quartz.properties,那么就會(huì)到Quartz的jar包中去加載quartz.properties配置文件。
如圖:工程目錄中沒有quartz.properties文件情況。
舉例:自定義quartz.properties配置文件,并放置項(xiàng)目工程目錄的根目錄下,通過修改線程池中線程數(shù)量為-1,驗(yàn)證了加載的是工程目錄中的配置文件。
quartz.properties配置文件的組成:stdScheduler在啟動(dòng)時(shí),就會(huì)加載該配置文件,參考該配置文件進(jìn)行初始化。
1、調(diào)度器屬性
2、線程池屬性:關(guān)系到Quartz后臺(tái)處理能力的性能。
threadCount:Quartz創(chuàng)建的線程用來(lái)處理定時(shí)任務(wù)的業(yè)務(wù),最少為1,它沒有限制,并且沒有默認(rèn)值,但出于資源的有限考慮,適量即可。
threadPriority:設(shè)置工作線程的優(yōu)先級(jí),優(yōu)先級(jí)大優(yōu)先執(zhí)行它的定時(shí)任務(wù),它的最大值為10,最小值為1,正常情況下設(shè)置為5,5也是默認(rèn)值,集群中會(huì)用到它。
org.quartz.threadPool.class
3、作業(yè)存儲(chǔ)設(shè)置
4、插件配置
查看全部 -
Scheduler:通過工廠模式創(chuàng)建的,如圖,SchedulerFactory的實(shí)現(xiàn)類有兩個(gè),常用的是StdSchedulerFactory。
Job和Trigger的關(guān)系:如圖。
Scheduler的創(chuàng)建方式:如圖。
接下來(lái)主要講解StdSchedulerFactory,因?yàn)镈irectSchedulerFactory的參數(shù)都需要代碼去實(shí)現(xiàn)的(開發(fā)中提倡聲明式配置,就是在配置文件中進(jìn)行配置,例如xml中等)。
StdSchedulerFactory:使用一組參數(shù)(Java.util.Properties)來(lái)創(chuàng)建和初始化Quartz調(diào)度器,其中這組參數(shù)就包括了指定后臺(tái)運(yùn)行Quartz的線程數(shù)。還有Job的信息存儲(chǔ)在何種介質(zhì)中(例如內(nèi)存中、或者數(shù)數(shù)據(jù)庫(kù)中),配置參數(shù)一般存儲(chǔ)在quartz.properties中。StdSchedulerFactory通過getScheduler犯法來(lái)創(chuàng)建和初始化調(diào)度器對(duì)象。
Scheduler的主要函數(shù):
Date?scheduleJob(JobDetail?jobDetail,Trigger?trigger):綁定JobDetail和Trigger,將其注入到Scheduler,其中返回的Date表示即將執(zhí)行的最近一次的執(zhí)行時(shí)間,如圖。
void start():它是用來(lái)啟動(dòng)Scheduler調(diào)度器,指定定時(shí)任務(wù)的。
void?standby():Scheduler暫時(shí)掛起,暫停工作。停止之后可以再通過start方法重新啟動(dòng)。
void shutdown():關(guān)閉調(diào)度器,不可以重新啟動(dòng)了。
注意:shutdown支持傳入一個(gè)布爾類型的參數(shù),如果傳入的為true,就表示等待所有正在執(zhí)行j的job執(zhí)行完畢后,再進(jìn)行關(guān)閉scheduler。如果傳入的false,那么就和無(wú)參數(shù)一樣,表示直接關(guān)閉scheduler。
舉例:shutdown(true),如圖。
查看全部 -
CronTrigger的作用:基于日歷的觸發(fā)器,而不是像SimpleTrigger精確到指定間隔時(shí)間,它比SimpleTrigger更常用(例如:每月的1號(hào)執(zhí)行定時(shí)任務(wù),這是SimpleTrigger實(shí)現(xiàn)不了的)。
Cron表達(dá)式:CronTrigger是基于Cron表達(dá)式實(shí)現(xiàn)的,如圖。
舉例:通過CronTrigger實(shí)現(xiàn)每秒鐘實(shí)現(xiàn)一次定時(shí)任務(wù)。
Cron表達(dá)式:使用規(guī)則如下圖(","表示或的意思,"-"表示至的意思,"*”表示所有的意思,"/"表示每的意思,"?"表示任意的意思,“#”表示第的意思。
Cron表達(dá)式舉例:如圖。
注意:
日和周不能是同一個(gè)值(不能同時(shí)是*或者?)
月和周的英文不區(qū)分大小寫,?
周X是(X+1),周日是1作業(yè):
查看全部
舉報(bào)