Spring的定时器出现执行两次的问题剖析及解决
2018-03-19 18:45
246 查看
解决在用Spring的定时器是出现的执行方法调用两次(实例被构造两次)的问题
今天在优化一个已经上线的项目上要实现一个定时器,其主要作用时为了定时删除一些文件、图片及视频,可是按正常的在web.xml、applicationContext.xml中配置相应的配置完成后启动Tomcat,然后在测试的时候居然我的定时器任务方法执行了两次。
问题所在:配置文件web.xml的配置
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>SpringMVC中再web.xml中有上面两行代码片,我的定时器配置在applicationContext.xml,在项目启动的时候扫描了两遍配置文件,也就是两个容器中都拿到了定时器。
解决方法:单独把定时器配置在一个新创建的文件spring-timer.xml里面,然后就可以了。
今天在优化一个已经上线的项目上要实现一个定时器,其主要作用时为了定时删除一些文件、图片及视频,可是按正常的在web.xml、applicationContext.xml中配置相应的配置完成后启动Tomcat,然后在测试的时候居然我的定时器任务方法执行了两次。
问题所在:配置文件web.xml的配置
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>SpringMVC中再web.xml中有上面两行代码片,我的定时器配置在applicationContext.xml,在项目启动的时候扫描了两遍配置文件,也就是两个容器中都拿到了定时器。
解决方法:单独把定时器配置在一个新创建的文件spring-timer.xml里面,然后就可以了。
相关文章推荐
- spring 定时器 @Component 执行两次 问题解决
- 分析解决 spring quartz 中出现的执行两次问题
- Spring的quartz定时器同一时刻重复执行二次的问题解决
- maven项目整合Spring与quartz出现的定时器任务二次重复执行问题(2017年12月2日16:57:32)
- 关于Spring中用quartz定时器在定时到达时同时执行两次的问题
- Spring的quartz定时器同一时刻重复执行二次的问题解决
- 关于Spring中用quartz定时器在定时到达时同时执行两次的问题
- linux下spring定时器执行两次问题
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 解决Spring定时计划任务重复执行两次或多次(实例被构造两次)问题的方法
- 解决Spring任务同时执行两次的问题
- Spring自带批量任务Scheduled重复执行两次的问题分析和解决
- Spring的Quartz定时器同一时刻重复执行二次的问题解决
- spring3.0基于注解的定时器以及执行两次的解决办法
- 解决spring定时任务执行两次和tomcat部署缓慢的问题
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- Spring的Quartz定时器同一时刻重复执行二次的问题解决
- 解决Spring自带的定时任务执行两次的问题
- SSH:解决Spring整合quartz定时任务执行两次问题