`

spring 定时器执行2次 解决办法

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

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

这样quartz只会在web容器启动时加载一次,Spring不会再加载了。

  • 大小: 6.6 KB
分享到:
评论

相关推荐

    spring定时器 spring定时器

    Spring定时器,也被称为Spring Boot的定时任务,是Spring框架中的一个强大功能,它允许开发者在应用程序中安排周期性任务的执行。这个功能基于Java的`java.util.concurrent.ScheduledExecutorService`,并通过Spring...

    spring java 定时器 执行两次 quartz

    当我们遇到Spring定时器执行两次或者更多次的问题时,这通常是由于配置不当或者多线程并发导致的。下面将详细介绍如何使用Spring集成Quartz,以及解决定时任务重复执行的问题。 首先,让我们了解Spring如何配置...

    spring定时器spring定时器spring定时器

    spring定时器spring定时器spring定时器spring定时器spring定时器spring定时器spring定时器spring定时器spring定时器spring定时器spring定时器spring定时器

    spring定时器启动两次原因及解决

    标题中的“spring定时器启动两次原因及解决”指的是在Spring框架中使用了定时任务功能,如Spring Boot的`@Scheduled`注解或者Spring Task模块,但遇到了定时任务被触发执行了两次的问题。这种情况可能是由于配置不当...

    java 定时器 spring 定时器

    Java定时器和Spring定时器是Java开发中用于执行周期性任务的重要工具,它们在系统维护、数据同步、报告生成等场景中发挥着关键作用。本文将深入探讨这两个概念,以及如何在Spring框架中配置和使用定时器。 首先,...

    spring定时器简单的demo

    在Spring框架中,定时任务是应用开发中常见的一种需求,比如定期执行数据清理、报表生成等操作。Spring提供了Spring Task模块来实现定时任务,也就是我们常说的Spring定时器。这个"spring定时器简单的demo"应该包含...

    spring定时器简单实例

    Spring定时器,也被称为Spring Boot的定时任务,是Spring框架中的一个强大功能,它允许开发者在特定的时间间隔执行任务,而无需手动管理线程。在实际的开发中,这一特性常用于实现数据清理、统计计算、发送邮件等...

    spring 定时器的两种实现

    在这个例子中,`executeTask`方法每5秒会被执行一次。`fixedRate`参数定义了执行间隔,单位是毫秒。 接下来,我们来看一下Quartz。Quartz是一个强大的、完全开源的作业调度框架,它可以与Spring无缝集成。使用...

    springAop与spring定时器

    而Spring的定时任务功能,主要是由`@Scheduled`注解和`TaskScheduler`接口提供的,可以让我们轻松地创建计划任务,执行周期性的后台作业。 Spring AOP的核心概念包括切面(Aspect)、连接点(Join Point)、通知...

    SPRING 定时器的使用

    ### Spring 定时器的使用 #### 背景与需求 在开发应用程序时,并非所有操作都需要用户主动触发。有些任务需要系统自动执行,比如数据同步、定期备份等。例如,电力行业的集抄系统(一种自动收集电表读数的系统)...

    spring定时器

    #### 二、Spring 定时器分类 ##### 1. 基于注解的定时器 基于注解的定时器是Spring 3.0版本后引入的功能,它简化了定时任务的开发过程,使得开发者能够更加专注于业务逻辑的编写。这种方式通常适用于较简单的定时...

    spring 定时器完整实例 demo

    除了`@Scheduled`,Spring还提供了`@Scheduled(fixedRate = value)`和`@Scheduled(fixedDelay = value)`,它们分别以固定间隔(单位为毫秒)和前一次执行结束后的固定延迟执行任务,不涉及复杂的日期和时间计算,...

    Spring中的Quartz配置-Spring-定时器-java定时器.doc

    Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...

    spring 定时器

    Spring定时器,全称为Spring Framework中的Task Execution and Scheduling模块,是Spring提供的一种用于执行计划任务的工具。这个模块使得开发者能够方便地在应用程序中安排周期性任务,而无需依赖像Quartz或Cron...

    spring定时器的包和配置文件

    在标题"spring定时器的包和配置文件"中,我们讨论的核心是Spring如何配置和使用定时器来自动化执行特定的任务。 首先,让我们了解Spring定时任务的基本概念。Spring定时器基于Java的`java.util.Timer`和`java.util....

    spring定时器时间配置

    ### Spring 定时器时间配置详解 在Spring框架中,定时任务是非常常见且重要的功能之一。通过使用`org.springframework.scheduling.quartz.CronTriggerBean`类,开发人员能够灵活地控制任务执行的时间点。本文旨在...

    spring定时器,定时调用任务配置

    本篇将详细介绍如何配置和使用Spring的定时器来定时调用任务。 首先,让我们了解Spring Task的核心组件。`TaskExecutor`接口用于异步执行任务,而`TaskScheduler`接口则用于调度定时任务。在这个场景中,我们将重点...

    spring定时器实现源码

    2. **启用定时任务**:在 Spring 配置类(通常为 `@Configuration` 类)中启用定时任务,通过 `@EnableScheduling` 注解: ```java import org.springframework.context.annotation.Configuration; import org....

    spring 定时器的使用实例

    Spring的Quartz定时器提供了一种强大且灵活的方式来管理和执行定时任务,适合在各种复杂的应用场景中使用。 在压缩包文件`quartzTimerDemo`中,可能包含了实现上述步骤的示例代码,包括配置文件、Job类和启动定时...

    Spring定时器quartz

    Spring定时器Quartz是Java应用中广泛使用的任务调度框架,它允许开发者定义并执行复杂的定时任务。这篇博客可能探讨了如何在Spring框架中集成Quartz,以实现灵活、可扩展的任务调度。 Quartz是一个开源的作业调度...

Global site tag (gtag.js) - Google Analytics