`

tomcat quartz 被触发两次

 
阅读更多

tomcat服务器中自启动导致quartz定时被触发两次

这两天发现部署到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

 

分享到:
评论

相关推荐

    quartz 调用两次任务

    2. **数据库存储问题**:Quartz 使用数据库存储 Job 和 Trigger 的信息,如果数据库中的记录不正确或被重复插入,可能导致任务被触发两次。 3. **集群环境下的并发问题**:在多服务器的集群环境中,如果未正确配置 ...

    quartz 随tomcat启动执行一次

    ### 关于 Quartz 随 Tomcat 启动执行一次的知识点 #### 1. Quartz 概述 Quartz 是一个开源的作业调度框架,能够触发在指定时间执行的任务(也称为作业)。它提供了丰富的调度器功能,如支持复杂的循环调度、支持...

    tomcat 定时作业

    然而,除了作为Web服务器的角色,Tomcat还可以被用来执行定时任务,这对于需要定期执行某些操作的应用场景非常有用。本篇文章将深入探讨如何在Tomcat中设置定时作业,并为初学者提供指导。 首先,我们要了解Tomcat...

    Quartz总结

    【Quartz框架详解】 ...无论是简单的一次性任务,还是基于时间周期的重复任务,Quartz都能提供强大的支持。在实际项目中,可以根据需要结合Quartz提供的API和特性进行扩展,以实现更复杂的调度场景。

    springboot-quartz

    有多种类型的触发器,如SimpleTrigger(一次性触发)、CronTrigger(基于CRON表达式触发)等。在SpringBoot中,我们可以通过配置类或YAML文件定义触发器。 3. **调度器(Scheduler)**:调度器是Quartz的核心,负责...

    SpringBatch-DataMigration SpringBatch数据迁移项目

    项目简介: 主要解决两库的两个表数据迁移和同步...2.应用quartz对job进行定时触发(目前设置的定时为每隔一分钟执行一次,目前定时服务已注释掉) 3.除了定时触发功能,还可以通过项目的index.jsp页面发起批处理job

    xxl-job-master.zip

    它基于Quartz Scheduler实现,可以配置CRON表达式定义任务执行的时间规则,并支持任务的分组、触发状态、日志查看等管理功能。 2. **执行器(XXL-JOB-EXECUTOR)**:执行器是实际执行任务的模块,每个执行器都可以...

    一线互联网公司面试题目

    执行顺序是:beforeClass(类前置,只执行一次)、before(每个测试方法前执行)、测试方法、after(每个测试方法后执行)、afterClass(类后置,只执行一次)。 2. **分布式锁**:分布式锁是在分布式系统中用于...

Global site tag (gtag.js) - Google Analytics