1. 程式人生 > >定時載入cronExpression使用注意事項

定時載入cronExpression使用注意事項

cronExpression與spring相結合的使用,相信大家都會覺得非常的方便。

先說一下基本的配置:

欄位   允許值   允許的特殊字元
秒    0-59    , - * /
分    0-59    , - * /
小時    0-23    , - * /
日期    1-31    , - * ? / L W C
月份    1-12 或者 JAN-DEC    , - * /
星期    1-7 或者 SUN-SAT    , - * ? / L C #
年(可選)    留空, 1970-2099    , - * /


與Spring結合使用主要在配置檔案中配置:

<beans>
 <bean id="loadCategoryToCacheTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
        <property name="targetObject"> 
            <ref bean="categoryCacheService" /> 
        </property> 
        <property name="targetMethod"> 
            <value>buildCategoryDOEXTHashTable</value>
        </property>
    </bean>
   
    <bean id="loadCategoryCronTrigger"  
        class="org.springframework.scheduling.quartz.CronTriggerBean"> 
        <property name="jobDetail"> 
            <ref bean="loadCategoryToCacheTask" /> 
        </property> 
        <property name="cronExpression">
           <value>0 0 5 * * ?

</value>
        </property> 
    </bean>


<bean  class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
        <property name="triggers"> 
            <list> 
                <ref local="loadCategoryCronTrigger" />
            </list> 
        </property> 
    </bean> 
</bean>

上面這個配置就可以完成定時載入。其中標紅的地方是載入的時間。

我們還需要在manager的配置檔案中加上:
<bean id="categoryCacheService"
  class="com.hello.biz.core.category.cache.CategoryCacheService" init-method="buildCategoryDOEXTHashTable">
  <property name="categoryDAO" ref="categoryDAO" />
  <property name="readCategorySearchFile" >
      <ref local="readCategorySearchFile"/>
  </property>
</bean>
這樣就會定時的去執行com.hello.biz.core.category.cache.CategoryCacheService這個類了。


這裡有個注意點:每天的早上5點和下午5點去載入,我們不能寫成05,17。只能是5,17.
這個地方開始的時候一直不知道為什麼不去執行那個類。

我自己也是立文為戒!