定时加载cronExpression使用注意事项

来源:互联网 发布:湘阴知源中学 编辑:程序博客网 时间:2024/05/08 08:08

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.
这个地方开始的时候一直不知道为什么不去执行那个类。

我自己也是立文为戒!

原创粉丝点击