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/20

一、在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 CodeCurDate extends 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>

 

 

 

目录
相关文章
|
7月前
|
监控 Java 调度
Spring中的任务调度:探索@Scheduled和@Schedules注解的威力
Spring中的任务调度:探索@Scheduled和@Schedules注解的威力
225 0
|
4月前
|
Java 关系型数据库 MySQL
SpringBoot 集成 Quartz + MySQL
SpringBoot 集成 Quartz + MySQL
116 1
|
5月前
|
NoSQL Java 调度
在Spring Boot中实现分布式任务调度
在Spring Boot中实现分布式任务调度
|
5月前
|
NoSQL Java 调度
在Spring Boot中实现分布式任务调度
在Spring Boot中实现分布式任务调度
|
5月前
|
Java BI 调度
在Spring Boot中实现多线程任务调度
在Spring Boot中实现多线程任务调度
|
6月前
|
SQL API 调度
Springboot2.4.5集成Quartz实现动态任务数据持久化-不怕重启服务
Springboot2.4.5集成Quartz实现动态任务数据持久化-不怕重启服务
224 0
|
6月前
|
Java API 调度
Web后端Javaee企业级开发之定时任务 Springboot整合任务框架Quartz和Task详解
Web后端Javaee企业级开发之定时任务 Springboot整合任务框架Quartz和Task详解
81 0
|
7月前
|
存储 数据可视化 安全
Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术
智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合。无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到的校园生活。简而言之,“要做一个安全、稳定、环保、节能的校园。
102 6
|
7月前
|
Java Spring 容器
SpringBoot 使用Quartz执行定时任务对象时无法注入Bean问题
SpringBoot 使用Quartz执行定时任务对象时无法注入Bean问题
256 1
|
7月前
|
存储 NoSQL Java
【十】springboot整合quartz实现定时任务优化
【十】springboot整合quartz实现定时任务优化
116 0