spring定时任务

Spring调度任务的运行时间可通过TriggerBean的属性进行配置,一般情况下不是使用SimpleTriggerBean就是使用

 

CronTriggerBean,这两个TriggerBean配置说明如下:

 

1)    SimpleTriggerBean的配置:

 

 

  <bean id="trigger.jobdetail"

 


        class="org.springframework.scheduling.quartz.SimpleTriggerBean">
       
    <property name="jobDetail">


      <ref bean="factory" />


    </property>


    <property name="startDelay">


      <!-- 10 seconds  单位是毫秒 默认是10秒钟-->


      <value>10000</value>


    </property>


    <property name="repeatInterval">


      <!-- repeat every 600 seconds  单位是毫秒  默认是10分钟-->


      <value>60000</value>


    </property>


  </bean>

 

 

定时任务所在的bean的配置

 

  <bean id="factory"


        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

 

    <property name="targetObject">


      <ref bean="dailyjob.processor" />


    </property>


    <property name="targetMethod">


      <value>process</value>


    </property>


  </bean>

 

 

 

 

2)  CronTriggerBean的配置:

 

 

这里设置每隔一分钟执行一次。SimpleTriggerBean只能指定工作执行的频率,不能指定工作执行的具体时间。

 

比方说要求在每天的晚上10点执行某个具体的工作,那么SimpleTriggerBean就不能满足了,这时需要使用另外

 

一个bean:CronTriggerBean。

 

  
    <bean id="Detail"

 

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  

     
  <property name="targetObject"><ref bean="mainServer"/></property>    

    
  <property name="targetMethod"><value>excute</value></property>


 </bean>

 

设置触发器

 


   <bean id="HRTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">


  <property name="jobDetail"> <ref bean="Detail"/></property>


  <property name="cronExpression"> <value>0/10 * * * * ?</value>  </property> 


 </bean>

 

<!--启动触发器-->


  <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

 

    <property name="triggers">


      <list>

   

<!-- 添加触发器 -->


        <ref local="HRTrigger" />


      </list>


    </property>


    

  </bean>

 

 

 

你可能感兴趣的:(spring,bean,工作,quartz)