標籤:增加 tailf framework detail size exp 每日 white lin
項目中在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>
spring整合Quartz時區問題造成任務晚執行八小時