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.
这个地方开始的时候一直不知道为什么不去执行那个类。
我自己也是立文为戒!