轉(zhuǎn)自http://www.thinksaas.cn/topics/0/679/679979.html
總調(diào)度(SchedulerFactoryBean)–> 定時調(diào)度器(CronTriggerFactoryBean) –> 調(diào)度明細(xì)自定義執(zhí)行方法bean(MethodInvokingJobDetailFactoryBean) –>調(diào)度bean(我們定義的job類)
總調(diào)度(SchedulerFactoryBean)–> 定時調(diào)度器(CronTriggerFactoryBean) –> 調(diào)度明細(xì)bean(JobDetailFactoryBean)
如上是我們在配置調(diào)度器時的具體步驟及相互之間的依賴,區(qū)別主要在調(diào)度明細(xì)bean上,普通任務(wù)是(MethodInvokingJobDetailFactoryBean),而可傳參任務(wù)是(JobDetailFactoryBean): 1)普通任務(wù)可以自定義執(zhí)行方法,也就是說在其配置的調(diào)度bean(我們定義的job類)中我們可以自定義調(diào)度器最終執(zhí)行的方法,可以叫work1也可以叫work2,and so on。而且要記住的一點,必須是無入?yún)⒌姆椒ǎ。。。ㄗ隽艘粋€測試,測試目的是看通過此類型調(diào)度類型是否也能傳入?yún)?shù)所以定義了一個帶入?yún)⒌淖远x方法即public void work(JobExecutionContext jobExecutionContext),最中測試結(jié)果是sPRing quartz會報找不到work方法及No such method work(),其默認(rèn)執(zhí)行我們生命的work無入?yún)⒌姆椒ā? 2)可傳參任務(wù)必須繼承QuartzJobBean,重寫protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException方法,其中JobExecutionContext就是我們在定義調(diào)度器明細(xì)時傳入?yún)?shù)的上下文,我們可以通過JobExecutionContext取出傳入的map,調(diào)度任務(wù)最終執(zhí)行的就是executeInternal方法,使用該調(diào)度明細(xì)任務(wù)無法使用自定義方法。
新聞熱點
疑難解答