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

spring-quartz时间问题

阅读更多
公司的产线环境一直用spring-quartz做一些定时job,从来没有发生过问题。之前有一个每5秒处理一批任务的需求,也使用了spring-quartz,而且运行了几个月从来没有发生过job时间的问题。今天早上来公司被告知job停掉了。

通过查DB中最后执行任务的时间,是在早上7点,查最后一次启动job的前后日志,一点异常也没有,诡异啊。
我想起来之前在测试环境曾经为了测另一个程序的临界时间的问题,把测试环境的时间改来改去,导致测试环境的spring-quartz异常。
想到这似乎有点意思了,因为昨天我们线上环境加了一个每一小时同步几台服务器的crontab。为了验证我的猜测是正确的,在本地启动这个job,把时间向前、向后调整几次后发现问题重现了。
我们quartz的配置是cronExpression:
<bean id="smsTaskSendTigger"  class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail">
      <ref bean="smsTaskSendTiggerBean" />
    </property>
    <property name="cronExpression">
      <value>0/5 * * * * ?</value>
    </property>
  </bean>

是不是配置成当上次job完成后,隔5秒后再启动下次job的配置就不会出现这个问题呢?
于是尝试了如下配置:
  <bean id="smsTaskSendTigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail">
      <ref bean="smsTaskSendTiggerBean" />
    </property>
    <property name="repeatInterval">
      <value>5000</value>
    </property> 
  </bean>

遗憾的是问题依然可以重现。
其他几个job都运行良好,可能每5秒一次的job比几分钟、几个小时的job更容易受时间同步服务的影响吧。没办法了,暂时先把这台服务器的时间同步停掉。
线上环境啊,血的教训。
分享到:
评论
1 楼 weiwei-0926 2013-08-21  
谢了,终于为线上的一个问题找到问题的原因了

相关推荐

    quartz和spring-quartz

    Quartz和Spring-Quartz是两个在Java世界中广泛使用的定时任务管理框架。Quartz是一个开源的作业调度框架,允许应用程序定义和调度任务在特定时间执行。而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring...

    spring-boot-Quartz-1.zip

    Quartz是一个开源的作业调度框架,它可以安排和执行基于时间的任务,而SpringBoot则提供了简化Java应用开发的便利性。本案例中,我们将深入探讨如何在SpringBoot应用中集成Quartz定时任务框架,以及如何配置和运行每...

    spring-quartz定时设置详细说明

    Spring 和 Quartz 是两个在 Java 开发中非常重要的框架。Spring 是一个全面的后端开发框架,而 Quartz 是一个强大的任务调度库。将它们结合使用,我们可以实现基于 Spring 的应用程序中的定时任务管理。以下是对 ...

    spring-quartz-021

    在IT行业中,Spring框架是Java领域最广泛应用的轻量级框架之一,而Quartz则是一个强大的、开放源代码的作业调度框架,常用于在应用程序中安排任务执行。当我们结合Spring和Quartz时,我们可以利用Spring的IoC...

    spring-quartz-example

    《Spring与Quartz结合实现定时任务的深度解析》 在软件开发中,定时任务是一个非常重要的功能,它能够按照预设的时间周期执行特定的任务,如数据同步、报表生成等。Spring框架作为Java企业级应用的基石,提供了丰富...

    spring-quartz-02

    而 Quartz 是一个强大的作业调度库,可以用于在指定时间执行任务,实现定时任务管理。 在 "spring-quartz-02" 这个项目中,我们可以看到如何将 Spring 框架与 Quartz 整合,以实现定时任务的功能。这个 demo 的核心...

    spring-quartz定时任务小实例

    Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用中定义和执行定时任务。本实例将探讨如何在Spring框架中集成Quartz,创建并运行一个简单的定时任务。以下是你需要知道的关键知识点: 1. **Quartz...

    spring整合quartz动态定时任务demo-spring-quartz-demo.zip

    这个"spring-quartz-demo"项目就是一个很好的示例,它展示了如何在Spring中整合Quartz以实现动态定时任务。 首先,我们要了解Spring和Quartz的基本概念。Spring是一个全面的Java企业级应用开发框架,它提供了依赖...

    spring-context-support-4.2.2和quartz-2.2.3所需Jar包

    1. **灵活的调度**:Quartz允许以cron表达式或基于时间间隔的方式定义作业触发时间。 2. **多线程与并发**:Quartz能够处理多个线程和并发任务,确保高效率和可靠性。 3. **持久化**:支持多种数据存储机制,如JDBC...

    spring-boot-quartz

    当我们结合 Spring Boot 和 Quartz,我们可以构建一个强大的定时任务管理系统,这在许多业务场景中非常有用,比如数据清理、报告生成、定期发送邮件等。 首先,让我们深入理解一下Spring Boot如何与Quartz集成。在...

    spring-quartz简单实例

    Spring Quartz是一个强大的任务调度框架,它允许开发人员在Java应用程序中安排复杂的任务执行。Quartz是开源的,可扩展的,且与Spring框架完美集成,为应用提供了灵活且可靠的定时任务管理能力。在这个"spring-...

    spring-quartz-01

    Spring 和 Quartz 是两个在 Java 开发中非常重要的框架。Spring 是一个全面的开源应用程序框架,提供了依赖注入、AOP(面向切面编程)以及众多其他功能,极大地简化了 Java 应用程序的开发。而 Quartz 是一个开源的...

    spring-quartz.zip

    Spring 和 Quartz 是两个在 Java 开发中非常重要的框架。Spring 是一个全面的后端开发框架,而 Quartz 是一个强大的任务调度库。在这个名为 "spring-quartz.zip" 的压缩包中,我们看到它们被整合在一起,用于实现...

    spring-quartz-03

    【Spring与Quartz集成详解】 在Java开发中,我们经常需要进行定时任务的调度,以实现后台自动执行某些业务逻辑。Spring框架提供了丰富的功能,而Quartz是一个强大的、完全开源的作业调度框架,用于在Java应用程序中...

    Spring-quartz计划任务

    **Spring-quartz计划任务** Spring框架与Quartz的结合使用,是Java开发中常见的定时任务解决方案。Quartz是一个开源的作业调度框架,可以用来在指定的时间执行特定的任务。而Spring框架则提供了对Quartz的集成,...

    cs端的java-spring-quartz框架

    在实际应用中,Spring的IoC和AOP特性能够帮助管理任务执行的上下文,而Quartz则负责调度这些任务,确保它们在正确的时间被正确地执行。 为了更好地利用这个框架,开发者需要对Spring和Quartz有深入的理解,包括它们...

    Spring-quartz实现定时器(含代码)

    在Java开发中,Spring框架与Quartz库的结合使用是创建高效、可扩展的定时任务的常见方式。本文将深入探讨如何使用Spring整合Quartz来实现定时器,并提供相关代码示例。 首先,理解Spring框架。Spring是一个开源的...

    Spring -Quartz的配置

    你可以创建一个实现了`org.springframework.scheduling.quartz.JobDetailBean`的类来表示Job,并用`org.springframework.scheduling.quartz.CronTriggerBean`来定义Cron表达式,从而控制触发时间。 ```java @Bean ...

    spring-quartz

    【标题】"spring-quartz" 是一个将Spring框架与Quartz定时任务库集成的应用实践,旨在实现定时任务的动态管理。在企业级应用中,定时任务的管理是必不可少的,例如执行数据同步、报表生成、清理过期数据等。通过...

Global site tag (gtag.js) - Google Analytics