这两天发现部署到tomcat中的quartz定时任务静态变量被初始化了两次,在网上查了一下发现,在tomcat服务器下,quartz不仅会把静态变量初始化两次,而且quartz会执行两次,导致该问题的原因是你的tomcat的conf目录中的server.xml有如下配置
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"> <Context docBase="ims_plat_new" path="/bap" reloadable="true" source="org.eclipse.jst.jee.server:ims_plat_new"/> </Host>
其中第一行告诉tomcat,在启动的时候加载webapps下的所有项目工程文件,第二行又让tomcat再加载了一遍(一般情况下配置第二行,主要是由于想域名访问时将工程名去掉的原因配置),这种情况下会导致工程中的quartz定时被两次触发,执行两次。
因此修改方法如下
<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false" deployOnStartup="false"> <Context docBase="ims_plat_new" path="/bap" reloadable="true" source="org.eclipse.jst.jee.server:ims_plat_new"/> </Host>
1. autodeploy属性值设置为false,如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用,设成false就不会。
2.增加deployOnStartup="false",表示Tomcat服务器启动时, 不会自动发布appBase目录下所有的Web应用。
这样的话,在tomcat启动时,不会自动发布appBase下的应用,启动后也不会自动发步appBase下的应用。
下面附上两个链接,分别是tomcat 中server.xml的说明:
http://blog.csdn.net/dangerye/article/details/7297185
http://www.cnblogs.com/gugnv/archive/2012/02/01/2334187.html
相关推荐
tomcat启动时立即调用quartz执行一次
quartz一个定时触发实例
NULL 博文链接:https://zx527291227.iteye.com/blog/1680575
spring定时器代码。解决多次执行问题。包含quartz-all.jar包。 说明很详细。希望能帮上哪位朋友。
quartz实例 自动生成 表达式 动态更新 xml文件 tomcat自动加载 写的时候一点也不明白 确实费了点劲 写的不好 不要笑
NULL 博文链接:https://stranger2008.iteye.com/blog/852258
该示例将执行以下操作: 用一个工作线程创建一个调度... 安排三个不同优先级的触发器,第一次同时触发,第二次以错开的时间间隔触发; 启动Quartz Scheduler; 等待30秒让 Job 有机会触发触发器; 关闭调度程序;
文件里面包括 1:Quartz开发指南.pdf 2:Quartz从入门到进阶.pdf 3:QuartzBeginnerExample一个附带的工程例子 4:quartz-1.6.1.zip Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它...
quartz quartz-1.8.6 dbTables quartz动态任务调度需要的数据库脚本。
使用 Spring Quartz,我们可以轻松地实现动态配置时间,触发相应的任务,从而提高系统的灵活性和可维护性。 系统架构 在本文中,我们假设了一个基于 Struts、Spring 和 Hibernate 的系统架构,旨在提供一个更加...
quartz简单实例quartz简单实例quartz简单实例quartz简单实例
没有标记为恢复的作业将在下一次相关的Triggers触发时简单地被释放以执行。 4.集群功能最适合扩展长时间运行或cpu密集型作业(通过多个节点分配工作负载)。如果需要扩展以支持数千个短期运行(例如1秒)作业,则...
该压缩包内包含两个quartz的jar包, 分别是quartz-1.6.0.jar和quartz-all-1.6.0.jar
赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...
quartz-2.2.3版本的quartz初始化sql语句
spring3整合quartz1.8和spring3整合quartz2.2两个版本示例
赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...
启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是Quartz.NET怎样能并发运行多个作业的原理。Quartz.NET依赖一套松耦合的线程池管理部件来管理线程环境。作业是一个执行任务的简单.NET...
lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子
Quartz1.5,Quartz1.6,Quartz1.8。Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个...