之前在做项目时用到了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