定時載入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 * * ?
</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.
這個地方開始的時候一直不知道為什麼不去執行那個類。
我自己也是立文為戒!