spring的定时调度

项目中要用到一个报表的运算服务器,项目一运行,就会启动相关的运算方法。

想了一圈,java web项目,spring是个万金油,什么都叫由它来管理。一查,还真有这个定时调度的功能。

spring提供两种触发器,一个是CronTriggerBean,一个是SimpleTriggerBean。

好懒,长话短说吧。

环境: spring + ibatis,首先配置spring配置文件。写service层(具体的运算方法就写在这)。

1). CronTriggerBea

           <!-- 定义job -->  

  1. <bean name="mathsJob1"  
  2.     class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
  3.     <!-- 注入的service层 -->  
  4.     <property name="targetObject" ref="mathsService" />  
  5.     <!-- 调用的方法-->  
  6.     <property name="targetMethod" value="aotoMathsMethod1" />  
  7.     <!--concurrent为true,则允许一个QuartzJob并发执行,否则就是顺序执行 -->  
  8.     <property name="concurrent" value="false" />  
  9. </bean>  
  10.   
  11. <!-- 定义CronTriggerBean触发器 -->  
  12. <bean id="mathsTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  13.     <!-- 注入需要出发的job -->  
  14.     <property name="jobDetail">  
  15.         <ref bean="mathsJob1" />  
  16.     </property>  
  17.     <!-- 触发的规则,这里是 每天的凌晨1点触发 -->  
  18.     <property name="cronExpression">  
  19.         <value>0 0 1 * * ?</value>  
  20.     </property>  
  21. </bean>  

2).SimpleTriggerBean

  1. <!-- 定义job -->  
  2.     <bean name="mathsJob2"  
  3.         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
  4.         <!-- 注入的service层 -->  
  5.         <property name="targetObject" ref="mathsService" />  
  6.         <!-- 调用的方法-->  
  7.         <property name="targetMethod" value="aotoMathsMethod2" />  
  8.         <!--concurrent为true,则允许一个QuartzJob并发执行,否则就是顺序执行 -->  
  9.         <property name="concurrent" value="false" />  
  10.     </bean>  
  11.       
  12.     <!-- 定义SimpleTriggerBean触发器 -->     
  13.     <bean id="mathsTriggerBean" class="org.springframework.scheduling.quartz.SimpleTriggerBean">        
  14.         <!-- 注入需要出发的job -->         
  15.         <property name="jobDetail">                 
  16.             <ref bean="mathsJob2" />            
  17.         </property>             
  18.         <!-- 30s后启动 -->             
  19.         <property name="startDelay" value="30000" />                
  20.         <!-- 10s检查一次 -->                
  21.         <property name="repeatInterval" value="2*60*60*1000" />     
  22.     </bean>  
原文地址:https://www.cnblogs.com/JSWBK/p/5832217.html