Spring 启动定时任务

项目中经常会遇到需要定时处理的问题,常规方法我们会采用TimerTask,如果用到了SSH整合时,我们就可以使用Sping来进行定时任务了,所有定时任务全部通过配置文件完成,具体步骤如下。


1.为定时处理的BEAN创建基本配置
//SyncTask是一个普通的类,里面有定时处理的方法
<bean id="job" class="cn.net.withub.ncs.SyncTask" scope="singleton" />


2.详细的调用配置,配置出调用那个类"targetObject"和具体执行那个方法"targetMethod"
<bean id="callGirlServiceInvokingJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
scope="singleton">
<property name="targetObject">
<ref bean="job" />
</property>
<property name="targetMethod">
<value>syncNews</value>
</property>
</bean>

3.配置定时器的详细触发时间 jobDetail是配置好执行类和执行方法的bean,cronExpression是配置具体哪个时间触发方法,具体的配置规则可以参考http://www.blogjava.net/javainthink/archive/2006/10/19/76077.html

<bean id="cronCallTrgger"
class="org.springframework.scheduling.quartz.CronTriggerBean"
scope="singleton">
<property name="jobDetail">
<ref bean="callGirlServiceInvokingJobDetail" />
</property>
<property name="cronExpression">
<value>0,10,20,30,40,50 * * * * ?</value>
</property>
</bean>

4.这是一个统一的任务触发列表,Spring会调用这个列表里面的定时任务执行。
<bean
class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
scope="singleton">
<property name="triggers">
<list>
<ref bean="cronCallTrgger"></ref>
</list>
</property>
</bean>

注:定时任务的配置其实就是从Spring的指定类注册到Spring文件中,然后把我们的各参数转入到指定类中,最后加入初始列表中。

你可能感兴趣的:(quartz,ssh,Sping)