zoukankan      html  css  js  c++  java
  • spring集成Quartz时区问题造成任务晚执行八小时

    项目中在Spring中集成了Quartz,配置的每日凌晨执行的定时任务都是到了八点多才执行,经过一番查找,可能是时区问题造成的。
    • 一种解决办法是在JVM启动参数中增加 --Duser.timezone=GMT+08
    • 另一种办法是在配置文件中增加timeZone的配置
    改JVM参数的方式,一但项目迁移实施人员可能会忘记改,所以决定再代码里做手脚。
     
    1、获取一个TimeZone,使用java.util.TimeZone.getTimeZone(String ID)获取指定的TimeZone,ID有两种形式,一种为完整名称例如“America/Los_Angeles”、“Asia/Shanghai”,或者一个自定义ID比如GMT-8:00”
    Spring配置如下
    <bean id="timeZone" class="java.util.TimeZone" factory-method="getTimeZone">
      <constructor-arg>
        <value>GMT+8:00</value>
      </constructor-arg>
    </bean>
    2、给TriggerBean注入
     <bean id="testJob" class="org.eu.raybit..jobs.TestJob" />
     <bean id="testJobMethod"   class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
       <property name="targetObject">
         <ref bean="testJob" />
       </property>
       <property name="targetMethod">
         <value>execute</value>
       </property>
    </bean>
    <bean id="testJobTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">   <property name="jobDetail" ref="testJobMethod"></property>   <property name="cronExpression" value="0 0 0 1/1 * ? "></property>   <property name="timeZone" ref="timeZone"/> </bean>
  • 相关阅读:
    将文件读取到内存、打印pe结构
    DIV与IDIV的用法
    内存对齐与硬盘对齐
    逆向笔记013
    自己实现的字符串长度求取、复制、连接
    在一段内存中查找数据
    用Maven构建Mahout项目实现协同过滤ItemCF--集群版
    用Maven构建Mahout项目实现协同过滤userCF--单机版
    从源代码剖析Mahout推荐引擎
    推荐系统第2周--itemCF和userCF
  • 原文地址:https://www.cnblogs.com/raym/p/9473539.html
Copyright © 2011-2022 走看看