spring很好的集成了quartz。现在就在实际工作用到的,简单总结了下:
定义的是定时器的工厂类:
<beans>
<bean name="quartzScheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers" ref="triggers"/><!--这里就是很多定时器-->
<property name="configLocation" value="classpath:quartz.properties"/><!-- 这里是quartz的配置文件哦,呵呵--->
</bean>
</beans>
下面来看下quartz.properties的配置文件吧:
#============================================================================
# 配置 Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
#============================================================================
# 配置执行线程池
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
#============================================================================
# 配置 JobStore
#============================================================================
org.quartz.jobStore.misfireThreshold = 60000
#内存中JobStore, 服务器重启时执行记录会丢失
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#数据库中JobStore,不过HSQLDB不支持select * from locks for update 的语法
#org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate
#org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
以上就是定义的quartz.properties配置文件
然后就看工厂类里面的参数:<property name="triggers" ref="triggers"/>的配置了:
由于这里有很多的定时器所以就用了个list
<bean id="triggers" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="sourceList">
<list>
<ref bean="cmsTrigger"/>
<ref bean="taskbillTrigger"/>
<ref bean="redlistTrigger"/>
<ref bean="sortRankTrigger"/>
<ref bean="callingDataImporterTrigger"/>
<ref bean="achieveTrigger"/>
</list>
</property>
</bean>
现在简单的说个其中的一个定时器吧:
现在看到的是:cmsTrigger
<bean id="cmsTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="cmsContentService" /><!---对应的相应的service-->
<property name="targetMethod" value="changeToArchive"/><!--- 该service的方法---->
</bean>
</property>
<property name="cronExpression" value="0 0 3 * * ?"/><!--这里就是执行的时间了--->
<!--
请注意:月份中的日期和星期不能同时设置
下面是对应的设置
1.秒 0-59
2.分钟 0-59
3.小时 0-23
4.月份中的日期 1-31
5.月份 1-12或者Jan Feb Mar Apr May Jun Jul Aug Sept Oct Nov Dec
6.星期中的日期 1-7或者MON,TUE,WED,THU,FRI,SAT,SUN.
-->
</bean>
呵呵,简单的应用就到此。。。。。