之前在做項目時用到了spring-task ,但是在使用過程中發現定時任務會執行兩次。今天偶然間在瀏覽博客時發現瞭解決方案,在這暫作記錄,有機會進行測試,同時如果有網友使用瞭如下解決辦法,希望也在評論中給出測試結果。
-------------------------------------------------------------------------------------------------------------------------------------
到指定時間後,任務總是執行2次的解決方案:
這是因爲我們很容易在一個基於Spring的Web工程中啓動2個定時線程:
第一次:web容器啓動的時候,讀取applicationContext.xml(或者別的Spring核心配置文件)文件時,會加載一次。
第二次:Spring本身會加載applicationContext.xml(或者別的Spring核心配置文件)一次。
解決方案:將你的Task的相關配置獨立出來並在web.xml中通過context-param加載。而不是通過spring加載。
1) 獨立出Spring-Task,如新命名一個文件名叫cms_quartz.xml
2) 在web.xml中去加載該文件:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/cms-servlet.xml,classpath:cms-quartz.xml</param-value>
</context-param>
http://blog.csdn.net/testcs_dn/article/details/38855641