之前在做项目时用到了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.youkuaiyun.com/testcs_dn/article/details/38855641

本文介绍了一种解决Spring框架中定时任务重复执行的方法。通常情况下,由于Web容器和Spring自身都会加载配置文件,导致定时任务执行两次。解决策略是将任务配置独立,并通过web.xml加载。
1165

被折叠的 条评论
为什么被折叠?



