小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Spring定時(shí)器在同一時(shí)間重復(fù)執(zhí)行兩次

 無不館 2015-05-29
Spring定時(shí)器在同一時(shí)間重復(fù)執(zhí)行兩次

 

Spring定時(shí)器在同一時(shí)間重復(fù)執(zhí)行兩次

解決方案如下:

 

最近用Springquartz定時(shí)器的時(shí)候,發(fā)現(xiàn)到時(shí)間后,任務(wù)總是重復(fù)執(zhí)行兩次,在tomcatjboss下都如此。
打印出他們的hashcode,發(fā)現(xiàn)是不一樣的,也就是說,在web容器啟動(dòng)的時(shí)候,重復(fù)啟了兩個(gè)quartz線程。 
研究下來發(fā)現(xiàn)quartz確實(shí)會(huì)加載兩次: 
第一次:web容器啟動(dòng)的時(shí)候,讀取applicationContext.xml文件時(shí),會(huì)加載一次。 
第二次:Spring本身會(huì)加載applicationContext.xml一次。 
而我的quartz配置就是寫在applicationContext.xml文件里的。 

解決辦法很簡(jiǎn)單 
先把quartz配置信息提取出來,單獨(dú)存成一個(gè)文件,比如applicationContext-quartz.xml 
然后修改web.xml,讓web容器啟動(dòng)時(shí),可以加載該文件 

這樣quartz只會(huì)在web容器啟動(dòng)時(shí)加載一次,Spring不會(huì)再加載了。

 

web.xml配置如下:

 
    contextConfigLocation
    /WEB-INF/classes/applicationContext.xml,/WEB-INF/classes/applicationContext-timertask.xml
 
 
 
      
           org.springframework.web.context.ContextLoaderListener
      
  

 

把定時(shí)器的配置單獨(dú)寫成一個(gè)配置文件,在web容器啟動(dòng)的時(shí)候只加載一次


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多