zoukankan      html  css  js  c++  java
  • Spring整合的quartz任务调度的实现方式

    一、在web.xml中将配置文件的位置指定好。

    Web.xml的配置如下:

    <?xmlversion="1.0"encoding="UTF-8"?>

    <web-appversion="2.5"

          xmlns="http://java.sun.com/xml/ns/javaee"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

       

    <context-param>

          <param-name>contextConfigLocation</param-name>

          <param-value>/WEB-INF/classes/beans.xml</param-value>

        </context-param>

    <listener> 

    <listener-class>

    org.springframework.web.context.ContextLoaderListener

              </listener-class>

          </listener>

    </web-app>

    二、导入相关的jar

    三、编写相关的类文件

    package cn.itcast;

     

    import java.util.Date;

     

    import org.quartz.JobExecutionContext;

    import org.quartz.JobExecutionException;

    import org.springframework.scheduling.quartz.QuartzJobBean;

    /**

     *     : CodeCurDate.java<br/>

     *     涂作权<br/>

     * 期时间 2013-6-18下午02:09:20<br/>

     *             创建一个要执行任务的类,该类必须继承QuartzJobBean规范<br/>

     *      V1.0

     */

    publicclass CodeCurDateextends QuartzJobBean {

     

          /**

           * 以某个时间段为周期,循环执行的方法

           * 到大某个时间,要执行的方法

           */

          protectedvoidexecuteInternal(JobExecutionContextarg0)

                             throws JobExecutionException {

                   System.out.println("ppppppppppppppppppppppppppppppppp");

                   System.out.println(new Date());

          }

    }

    四、编写相关的配置文件

    <?xmlversion="1.0"encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

            xmlns:context="http://www.springframework.org/schema/context"

            xmlns:aop="http://www.springframework.org/schema/aop"

            xmlns:tx="http://www.springframework.org/schema/tx"

                   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.5.xsd

                                      http://www.springframework.org/schema/context

                                      http://www.springframework.org/schema/context/spring-context-2.5.xsd

                                       http://www.springframework.org/schema/tx

                                      http://www.springframework.org/schema/tx/spring-tx-2.5.xsd

                                      http://www.springframework.org/schema/aop

                                      http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

                                      

          <!-- 1创建执行任务的类的实例 -->

          <beanid="codeCurDate"class="org.springframework.scheduling.quartz.JobDetailBean">

             <!--spring中执行任务的类的实例的创建,不是通过spring的普通的方法,而是把融合到其他JobDetailBean类中-->

             <property name="jobClass">

              <value>cn.itcast.CodeCurDate</value>

             </property>

          </bean>

         

          <!-- 2创建一个触发器,整合执行任务的类的实例和时间关联 -->

          <beanid="codeCurDateTrigger"class="org.springframework.scheduling.quartz.SimpleTriggerBean">

            <!-- 注入要执行任务的类的实例 -->

            <property name="jobDetail"ref="codeCurDate"></property>

            <!-- 配置该触发器,在第一次启动之前等待2,以毫秒为单位 -->

            <property name="startDelay"value="2000"/>

            <!--配置启动后,每隔4秒执行任务一次,以毫秒为单位-->

            <property name="repeatInterval"value="4000"/>

          </bean>

         

          <!-- 3注册触发器,启动调度任务 -->

          <beanclass="org.springframework.scheduling.quartz.SchedulerFactoryBean">

              <property name="triggers">

                <list>

                   <refbean="codeCurDateTrigger"/>

                </list>

              </property>

          </bean>

    </beans>

    五、启动服务器,接着就可以看到控制台中每隔一段时间就与输出。

     

     

    二、通过CronTrigerBean的方式实现的任务调度策略

    首先:编写任务执行类

    package cn.itcast;

    import java.util.Date;

    import org.quartz.JobExecutionContext;

    import org.quartz.JobExecutionException;

    importorg.springframework.scheduling.quartz.QuartzJobBean;

    /**

     *文件名     : CodeCurDate.java<br/>

     *创建人     :涂作权<br/>

     *日期时间:2013-6-18 下午02:54:57<br/>

     *描述           :  <br/>

     *版本号     :V1.0

     */

    public class CodeCurDate extendsQuartzJobBean {

          /**

           * 以某个时间段为周期,循环执行的方法

           * 到大某个时间,要执行的方法

           */

          protectedvoid executeInternal(JobExecutionContext arg0)

                             throwsJobExecutionException {

                   System.out.println("PPPPPPPPPPPPPPPPPPPPPPPP");

                   System.out.println(newDate());

          }

    }

    其次:在Spring的配置文件进行配置,配置代码如下:

    <?xmlversion="1.0"encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

            xmlns:context="http://www.springframework.org/schema/context"

            xmlns:aop="http://www.springframework.org/schema/aop"

            xmlns:tx="http://www.springframework.org/schema/tx"

                   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.5.xsd

                                      http://www.springframework.org/schema/context

                                      http://www.springframework.org/schema/context/spring-context-2.5.xsd

                                       http://www.springframework.org/schema/tx

                                      http://www.springframework.org/schema/tx/spring-tx-2.5.xsd

                                      http://www.springframework.org/schema/aop

                                      http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

     

          <!-- 1创建执行任务的类的实例 -->

          <beanid="codeCurDate"class="org.springframework.scheduling.quartz.JobDetailBean">

             <!--spring中执行任务的类的实例的创建,不是通过spring的普通的方法,而是把融合到其他JobDetailBean类中-->

             <property name="jobClass">

              <value>cn.itcast.CodeCurDate</value>

             </property>

          </bean>

         

          <!-- 2创建一个触发器,整合执行任务的类的实例和时间关联 -->

          <beanid="codeCurDateTrigger"class="org.springframework.scheduling.quartz.CronTriggerBean">

             <!-- 注入执行任务的类 -->

             <property name="jobDetail"ref="codeCurDate"/>

             <!-- 配置定时执行任务,945分将调用该触发器的执行 -->

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

          </bean>

           

          <!-- 3注册触发器,启动调度任务 -->

          <beanclass="org.springframework.scheduling.quartz.SchedulerFactoryBean">

              <property name="triggers">

                <list>

                   <refbean="codeCurDateTrigger"/>

                </list>

              </property>

          </bean>

    </beans>

    最后:在web.xml中配置相关数据

    <?xmlversion="1.0"encoding="UTF-8"?>

    <web-appversion="2.5"

          xmlns="http://java.sun.com/xml/ns/javaee"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

      <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>/WEB-INF/classes/beans.xml</param-value>

      </context-param>

      <listener>

        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

      </listener>

    </web-app>

     

     

     

  • 相关阅读:
    罗马数字
    逆序对
    等价串
    郊区春游
    贝壳找房函数最值
    Educational Codeforces Round 45 Editorial
    Codeforces Round #486 (Div. 3)
    checkbox保存和赋值
    oninput和onchange的区别
    cookie路径概念理解
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3144777.html
Copyright © 2011-2022 走看看