一个简单的Quartz任务调度例子

       Quartz是由java编写的开源作业调度框架,其核心就是调度器。Quartz的实现非常简单,创建一个实现org.quartz.Job接口的java类。这个接口包含唯一的方法:

public void execute(JobExecutionContext context)
throws JobExecutionException;
在自己的实现类里面,添加一些处理逻辑到execute()方法。一旦你配置好Job实现类并设定好调度时间表,Quartz就可以在指定的时间执行相应的动作。
     这里我们用一个简单地例子初步了解Quartz,我们要实现一个定时发送邮件的功能,这个逻辑用Quartz来处理非常的简单。首先我们需要建一个JOB类,这个类的逻辑是当到达指定的时间的时候就发送邮件。这样的逻辑应该很简单这里就不具体说明了。接下来我们要做的就是用Quartz任务调度来执行这个类,我们可以设置调度时间例如每隔一分钟去扫描一次,一旦符合JOB类中的情况就会做出相应的动作,达到定时发送邮件的效果。
       本文主要是利用Spring来集成Quartz。我们只需要在Spring中配置相应的Trigger和Job,Spring在找到这些bean后会自动启动这些Job。下面是一些配置信息:
<!-- 要调用的工作类 class中的类即为我们刚刚建的JOB类 -->
        <bean id="quartzJob" class="com.job.quartz.QuartzJob">
        	<property name="sqlMap" ref="sqlMapClient" />
        </bean>
 
  <!-- 定义调用对象和调用对象的方法 -->
        <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <!-- 调用的类 -->
            <property name="targetObject">
                <ref bean="quartzJob"/>
            </property>
            <!-- 调用类中的方法 -->
            <property name="targetMethod">
                <value>exec</value>
            </property>
        </bean>
        <!--定义执行的时间  它定义了quartzJob何时被调用。 -->
        <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
            <property name="jobDetail">
                <ref bean="jobtask"/>
            </property>
            <!-- 时间的表达式 -->
            <property name="cronExpression">
                <value>0 0 12 * * ?value>
            </property>
        </bean>
        <!--  如果将lazy-init='false'   那么容器在启动的时候就会执行调度程序  -->
        <bean id="startQuartz" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"  lazy-init="false">
            <property name="triggers">
                <list>
                    <ref bean="doTime"/>
                </list>
            </property>
        </bean>	
              通过以上的配置再加上我们的JOB类就可以利用Quartz轻松的实现定时发送邮件的效果了!

猜你喜欢

转载自chris-2012.iteye.com/blog/1882112
今日推荐