基于spring+quartz开发定时器

1、准备Jar包
       在Spring所有包齐全的前提下还要导入一个定时器工具包:quartz-1.6.2.jar
2.开发定时器类,实例代码如下:  public class TriggerUtil {
     private TriggerUtil(){
       
     }
     public void expDataBase(){
         System.out.println("trigger actived..");
     }
}
3.配置定时任务
     为了清晰代码结构,单独建立一个配置定时任务的配置文件context-trigger.xml,并在applicationContext.xml进行import:
   <import resource="context-trigger.xml"/>
context-trigger.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans
     xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!-- 定时器配置 -->
<!-- 配置定时器类 -->
   <bean id="triggerUtil" class="com.pro.base.util.TriggerUtil" >
   </bean>
  <!-- 指定任务(方法) -->
  <bean id="BaseJob"                                            class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
      <property name="targetObject">
          <ref local="triggerUtil" />
      </property>
      <property name="targetMethod">
          <value>expDataBase</value>
      </property>
  </bean>
  <!-- 设定计划执行时间 -->
  <bean id="expDataBaseTrigger"
      class="org.springframework.scheduling.quartz.CronTriggerBean">
      <property name="jobDetail">
          <ref local="expDataBaseJob" />
      </property>
      <property name="cronExpression">
          <value>00 33 21 * * ?</value>
      </property>
      </bean>
     <!-- 任务执行器配置 -->
      <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref local="BaseTrigger" />
            </list>
        </property>
    </bean>
</beans>

附:定时时间配置说明
0 0 12 * * ?     每天中午12点触发                                                                                                                                        
0 15 10 ? * *     每天上午10:15触发                                                                                                                                             
0 15 10 * * ?     每天上午10:15触发                                                                                                                                        
0 15 10 * * ? *     每天上午10:15触发                                                                                                                                              
0 15 10 * * ? 2005     在2005这一年中每天上午10:15触发
0 * 14 * * ?     每天下午14:00到15:00之间,每1分钟触发一次
0 0/5 14 * * ?     每天下午14:00到14:55之间,每5分钟触发一次                                                                         
0 0/5 14,18 * * ?     每天的14:00~14:55和18:00~18:55之间,每5分钟触发一次
0 0-5 14 * * ?     每天的14:00~14:05之间,每1分钟触发一次                                                                              
0 10,44 14 ? 3 WED     3月的每周三的14:10和14:44触发                                                                                
0 15 10 ? * MON-FRI     每周周一到周五的10:15触发
0 15 10 15 * ?    每月15日的10:15触发                                                                                                     
0 15 10 L * ?     每月最后一天的10:15触发                                                                                                                 
0 15 10 ? * 6L     每月的最后一个周五的10:15触发                                                                                                         
0 15 10 ? * 6L 2002-2005     在2002到2005之间,每月的最后一个周五的10:15触发  
0 15 10 ? * 6#3     每月的第三个星期五的10:15触发                                                                     

猜你喜欢

转载自lafecat.iteye.com/blog/2152994