spring结合quartz的执行多任务的实现 spring结合quartz的执行多任务的实现

Xml代码    收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
  5.     <!--定义多个任务信息 -->  
  6.        
  7.     <!--1、 配置文件中添加业务类,该类为调用的工作类 -->  
  8.     <bean id="businessWork" class="com.morningstar.quartz.BusinessWork" />    
  9.       
  10.     <!-- 2、定义任务,在spring文件中配置代理类 ,定义调用对象和调用对象的方法-->   
  11.     <bean id="reportTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">    
  12.         <!-- 调用的类 -->          
  13.         <property name="targetObject" ref="businessWork"/>  
  14.          <!-- 调用类中的方法 -->  
  15.         <property name="targetMethod" value="generateReport"/>   
  16.         <!-- false,证明不执行并发任务 -->  
  17.         <property name="concurrent" value="false"/>     
  18.     </bean>   
  19.     <bean id="emailTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">    
  20.         <!-- 调用的类 -->          
  21.         <property name="targetObject" ref="businessWork"/>  
  22.          <!-- 调用类中的方法 -->  
  23.         <property name="targetMethod" value="sendEmail"/>   
  24.         <!-- false,证明不执行并发任务 -->  
  25.         <property name="concurrent" value="false"/>     
  26.     </bean>   
  27.       
  28.     <!-- 3、配置触发器,定义触发时间,可以根据不同的时间对同一个任务定义多个触发器,下面是每隔5秒调用一个方法配置-->  
  29.     <!-- cron表达式 -->  
  30.     <bean id="reportCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  31.         <property name="jobDetail" ref="reportTask"/>  
  32.         <property name="cronExpression" value="10,15,20,25,30,35,40,45,50,55 * * * * ?"/>  
  33.     </bean>  
  34.     <bean id="emailCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  35.         <property name="jobDetail" ref="emailTask"/>  
  36.         <property name="cronExpression" value="10,15,20,25,30,35,40,45,50,55 * * * * ?"/>  
  37.     </bean>  
  38.   
  39.     <!-- 4、配置调度器 ,容器启动就会执行调度程序  -->  
  40.      <!-- 总管理类,如果lazy-init='false',则容器启动时就会执行调度程序-->    
  41.      <!-- 如果lazy-init='true',则需要实例化该bean才能执行调度程序            -->    
  42.     <bean id="schdulerFactory" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  43.         <property name="triggers">  
  44.             <list>  
  45.                 <ref bean="reportCronTrigger"/>  
  46.                 <ref bean="emailCronTrigger"/>  
  47.             </list>  
  48.         </property>  
  49.     </bean>  
  50. </beans>  
Xml代码    收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
  5.     <!--定义多个任务信息 -->  
  6.        
  7.     <!--1、 配置文件中添加业务类,该类为调用的工作类 -->  
  8.     <bean id="businessWork" class="com.morningstar.quartz.BusinessWork" />    
  9.       
  10.     <!-- 2、定义任务,在spring文件中配置代理类 ,定义调用对象和调用对象的方法-->   
  11.     <bean id="reportTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">    
  12.         <!-- 调用的类 -->          
  13.         <property name="targetObject" ref="businessWork"/>  
  14.          <!-- 调用类中的方法 -->  
  15.         <property name="targetMethod" value="generateReport"/>   
  16.         <!-- false,证明不执行并发任务 -->  
  17.         <property name="concurrent" value="false"/>     
  18.     </bean>   
  19.     <bean id="emailTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">    
  20.         <!-- 调用的类 -->          
  21.         <property name="targetObject" ref="businessWork"/>  
  22.          <!-- 调用类中的方法 -->  
  23.         <property name="targetMethod" value="sendEmail"/>   
  24.         <!-- false,证明不执行并发任务 -->  
  25.         <property name="concurrent" value="false"/>     
  26.     </bean>   
  27.       
  28.     <!-- 3、配置触发器,定义触发时间,可以根据不同的时间对同一个任务定义多个触发器,下面是每隔5秒调用一个方法配置-->  
  29.     <!-- cron表达式 -->  
  30.     <bean id="reportCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  31.         <property name="jobDetail" ref="reportTask"/>  
  32.         <property name="cronExpression" value="10,15,20,25,30,35,40,45,50,55 * * * * ?"/>  
  33.     </bean>  
  34.     <bean id="emailCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  35.         <property name="jobDetail" ref="emailTask"/>  
  36.         <property name="cronExpression" value="10,15,20,25,30,35,40,45,50,55 * * * * ?"/>  
  37.     </bean>  
  38.   
  39.     <!-- 4、配置调度器 ,容器启动就会执行调度程序  -->  
  40.      <!-- 总管理类,如果lazy-init='false',则容器启动时就会执行调度程序-->    
  41.      <!-- 如果lazy-init='true',则需要实例化该bean才能执行调度程序            -->    
  42.     <bean id="schdulerFactory" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  43.         <property name="triggers">  
  44.             <list>  
  45.                 <ref bean="reportCronTrigger"/>  
  46.                 <ref bean="emailCronTrigger"/>  
  47.             </list>  
  48.         </property>  
  49.     </bean>  
  50. </beans>  

猜你喜欢

转载自rongdmmap-126-com.iteye.com/blog/1434378