关于spring定时器一次调用却触发了两次trigger的问题分析
2017-04-12 16:05
309 查看
关于spring定时器一次调用却触发了两次trigger的问题分析
定在一个时间点触发一个方法,但是这个方法却被调用了两次.仔细检查了程序,没有多次触发,没有启动多个tomcat,没有检查出什么问题.后来在网上看到了高手的一个帖子发现原来原因是这样的:
是TOMCAT的配置文件server.xml配置不当引起的,请看下面这段配置就是错误的:
[html]
<Host name="www.***.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" />
<Context path="" docBase="/tomcat/webapps/***" debug="1" />
<Context path="/***2" docBase="/tomcat/webapps/***2" debug="1" />
</Host>
正确的配置如下:
[html]
<Host name="www.***.com" debug="0" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" />
<Context path="" docBase="/tomcat/webapps/***" debug="1" />
<Context path="/***2" docBase="/tomcat/webapps/***2" debug="1" />
</Host>
这两段的区别是第二段去除了appBase="webapps"中的webapps变成了appBase="",因为web应用程序都是放在webapps这个目录下的,如果不把“webapps“去掉,这里会调用一次quartz的任务调度,在接下来的“<Context path”中又会调用一次quartz的任务调度,所以就重复了2次
这种情况一般都是编译器自动添加路径造成的,比如用eclipse编译,发布程序.或者人为的添加项目路径,好好检查tomcat配置就不会再出现这种问题了.
定在一个时间点触发一个方法,但是这个方法却被调用了两次.仔细检查了程序,没有多次触发,没有启动多个tomcat,没有检查出什么问题.后来在网上看到了高手的一个帖子发现原来原因是这样的:
是TOMCAT的配置文件server.xml配置不当引起的,请看下面这段配置就是错误的:
[html]
<Host name="www.***.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" />
<Context path="" docBase="/tomcat/webapps/***" debug="1" />
<Context path="/***2" docBase="/tomcat/webapps/***2" debug="1" />
</Host>
正确的配置如下:
[html]
<Host name="www.***.com" debug="0" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" />
<Context path="" docBase="/tomcat/webapps/***" debug="1" />
<Context path="/***2" docBase="/tomcat/webapps/***2" debug="1" />
</Host>
这两段的区别是第二段去除了appBase="webapps"中的webapps变成了appBase="",因为web应用程序都是放在webapps这个目录下的,如果不把“webapps“去掉,这里会调用一次quartz的任务调度,在接下来的“<Context path”中又会调用一次quartz的任务调度,所以就重复了2次
这种情况一般都是编译器自动添加路径造成的,比如用eclipse编译,发布程序.或者人为的添加项目路径,好好检查tomcat配置就不会再出现这种问题了.
相关文章推荐
- 关于spring定时器一次调用却触发了两次trigger的问题分析
- spring定时器一次调用却触发了两次问题分析
- 关于Java Web 使用Spring中使用Quartz(定时调用、实现固定时间执行), 触发定时器(执行某些任务)的实例
- spring定时器,定时器一次执行两次的问题
- 关于Spring中用quartz定时器在定时到达时同时执行两次的问题
- 关于Spring中用quartz定时器在定时到达时同时执行两次的问题
- 解决iScroll中事件点击一次却触发两次的问题
- 关于 appium 调用 uiautomator 中 UiScorllable 遇到的问题及分析
- Spring自带批量任务Scheduled重复执行两次的问题分析和解决
- linux下weblogic 工程,Spring的Trigger定时器自动shut_down报错信息记录(暂时没有定位到问题)
- 一次软件工程作业:关于C与C++中互相调用动态链接库的问题
- 关于同一个文件两次调用CDC切片的结果不同的问题
- java springmvc 定时器方法执行两次问题
- 使用iscroll滑动区域内的div onclick事件单击一次触发了两次问题的解决
- 关于spring容器初始两次的问题
- 关于Listbox的 SelectionChanged 事件 (同一个Item只触发一次问题)
- 关于ios中的长按事件被调用两次的问题
- 关于使用Spring声明式事务时,在类的内部方法互相调用时,Spring无法拦截内部方法调用,导致事务不起作用的问题研究
- 关于动态存储分配函数的调用,在已经过排序的数组中查找及删除内容的操作,余数的分析,删除字符数组中的空格,对链表的逆置,在源字符串中查找子字符串的个数,函数指针以及函数的调用,循环赋值带来的问题以及插入
- 关于AJAX只触发一次后台调用的解决方法