`
foolzhu
  • 浏览: 15072 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring的quartz定时器重复执行二次的问题解决

阅读更多
最近用Spring的quartz定时器的时候,发现到时间后,任务总是重复执行两次,在tomcat或jboss下都如此。
打印出他们的hashcode,发现是不一样的,也就是说,在web容器启动的时候,重复启了两个quartz线程。
研究下来发现quartz确实会加载两次:
第一次:web容器启动的时候,读取applicationContext.xml文件时,会加载一次。
第二次:Spring本身会加载applicationContext.xml一次。
而我的quartz配置就是写在applicationContext.xml文件里的。

解决办法很简单
先把quartz配置信息提取出来,单独存成一个文件,比如applicationContext-quartz.xml
然后修改web.xml,让web容器启动时,可以加载该文件

这样quartz只会在web容器启动时加载一次,Spring不会再加载了。
分享到:
评论
3 楼 huang_yong 2012-09-28  
我们是这样解决这个问题的:

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring.xml,classpath:spring-job.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
2 楼 除了你无可取代 2012-05-29  
  确实是这个问题 谢谢了。
1 楼 zl0828 2011-12-15  
web配置怎么用的,就差这一步了

相关推荐

    spring quartz定时器的简单配置和使用

    本文将详细介绍如何在Spring项目中集成Quartz定时器,并通过一个简单的示例来进行演示。 #### 一、环境准备 为了能够顺利地运行示例代码,我们需要准备以下必要的依赖库: - `jta-1.1.jar`:用于事务管理。 - `...

    spring boot集成quartz定时器

    本文将详细讲解如何在Spring Boot项目中集成Quartz定时器,以及如何利用Spring的依赖注入特性来实现Job。 一、集成Quartz定时器 1. 添加依赖:首先,你需要在Spring Boot项目的`pom.xml`或`build.gradle`文件中...

    java Spring OpenSymphony的Quartz定时器的时间设置

    在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨Quartz定时器的配置与使用,尤其是其时间设置的...

    配置Spring+quartz定时器.docx

    ### 配置Spring+Quartz定时器的知识点详解 #### 一、Quartz简介与应用场景 Quartz 是一个开源的任务调度框架,它提供了强大的任务调度功能,并且易于配置和使用。该框架支持复杂的循环调度策略,可以触发任务的...

    quartz定时器配置与jar包

    本资料包将详细介绍如何在Spring框架中配置和使用Quartz定时器,并涉及到cron表达式的使用。 一、Quartz简介 Quartz是一个完全由Java编写的作业调度框架,能够精确地调度任务,支持简单或复杂的调度需求。Quartz的...

    web spring 定时器

    首先,Spring提供了两种主要的定时任务解决方案:一是Spring内置的`TaskScheduler`接口,二是基于Quartz库的`@Scheduled`注解。`TaskScheduler`提供了一种异步执行任务的方式,适合于简单的定时任务需求。而`@...

    quartz定时器2.2.1JAR包

    Quartz定时器是一款开源的、功能强大的作业调度框架,它为Java应用程序提供了精确且可扩展的任务调度能力。在Java世界中,Quartz以其灵活性、稳定性和广泛的社区支持而备受推崇。2.2.1版本是Quartz的一个稳定版本,...

    Spring动态定时器

    #### 二、Quartz与Spring集成实现动态定时 Quartz是一个开源的作业调度框架,能够提供强大的作业调度功能。它支持复杂的触发规则,如Cron表达式,非常适合用来实现动态定时任务。当Quartz与Spring框架结合使用时,...

    spring的定时器设置

    随着Spring 3.x的发布,Spring引入了基于`Quartz`和`Commons-Job`的更强大的定时任务解决方案,同时也提供了基于Java `@Scheduled`注解的声明式定时任务。以下是两种方式的使用: 1. **基于Java配置的@Scheduled** ...

    Spring与QuartZ集成定时器

    【Spring与QuartZ集成定时器】是一种在Java应用程序中实现定时任务的常见方式,它结合了Spring框架的灵活性和Quartz的定时功能。Quartz是一个开源的作业调度框架,可以用于创建、调度和执行重复性的任务。Spring则...

    spring2.5 定时器任务

    该触发器配置了一个延迟启动时间为10秒,然后每60秒重复执行一次的任务。 ##### 5. 定时任务调度器配置(`SchedulerFactoryBean`) ```xml &lt;bean class="org.springframework.scheduling.quartz....

    spring 执行定时器触发器文档

    Spring 通过集成 Quartz 这一成熟的调度框架,为开发者提供了灵活且易于使用的定时任务管理机制。 #### 二、定时任务触发器分类 ##### 2.1 SimpleTrigger 简单触发器 - **定义**:适用于需要简单触发调度的场景。...

    spring定时器

    Spring定时器可以与Quartz定时器进行集成,以提供更加强大的任务调度能力。Quartz是一个开源的作业调度框架,它提供了丰富的调度功能和良好的扩展性,非常适合用于复杂的定时任务场景。 ##### 3.1 Quartz定时器特点...

    quartz定时器的用法(简单和动态配置)

    本文将深入探讨Quartz定时器的简单使用和动态配置。 ### 一、Quartz的基本概念 1. **Job**:Job是执行的具体任务,它实现了`org.quartz.Job`接口。你可以定义自己的Job类,实现`execute`方法,里面包含你要执行的...

    spring定时器代码注释

    - `jobClass` 属性用于设置执行定时任务的具体类,该类需要实现 `org.quartz.Job` 接口或继承 `org.springframework.scheduling.quartz.QuartzJobBean`。 ```xml &lt;bean id="quartzClock" class="org.spring...

    spring 中定时器的详细配置

    `ReceiveWareJob.java`定义了具体的业务逻辑,`定时器配置.txt`提供了定时任务的执行计划,而Spring配置文件则将这些元素组织在一起,实现灵活的定时任务调度。在实际开发中,你可以根据项目的实际需求调整配置,...

    spring 定时器

    #### 二、Spring定时器的实现原理 ##### 2.1 基于注解的定时任务 Spring 3.0引入了`@Scheduled`注解,它可以直接添加到方法上,以实现定时任务的功能。Spring容器会根据该注解配置的时间表达式定期调用被注解的...

    Spring 定时器.txt

    ### Spring 定时器知识点详解 #### 一、Spring 定时器概述 Spring 框架提供了多种机制来支持定时任务的实现,这其中包括基于 Java 的标准 `java.util.Timer` 和更为强大的 Quartz 调度框架的支持。本文档将详细...

    Java中Spring使用Quartz任务调度定时器

    Java中的Spring框架集成Quartz任务调度定时器,可以方便地实现复杂的定时任务,极大地提高了应用程序的灵活性和自动化程度。Quartz是一个开源的作业调度框架,由Java编写,它可以独立使用,也可以与J2EE和J2SE应用...

Global site tag (gtag.js) - Google Analytics