`

Spring3+Quarz实现定时任务

 
阅读更多
Spring Quartz 多任务、并发配置 http://my.oschina.net/dyyweb/blog/495975

定时任务-quartz的使用,实现可页面化管理 http://my.oschina.net/u/1757031/blog/485754  例子很详细

原文:http://my.oschina.net/u/1998885/blog/491253

一、首先引入quarz所需要的jar包,如下:
    <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>1.8.6</version>
       </dependency>


二、编写定时任务
定义一个普通的JAVA类,不需要继承或者实现其它的父类
package com.liyi.test.quarz;
 
import java.util.Date;
 
public class SpringQuarz {
    public void test(){
        System.out.println(new Date()+"触发一次定时任务");
    }
}



三、spring配置定时任务,我是自己在web-inf下面新建了一个文件夹,专门放置quarz定时任务的配置文件,在主的spring配置文件applicationContent.xml中import单个的定时任务。

    1、在applicationContext.xml中,引入定时任务
<!-- 定时任务 -->
    <import resource="spring/spring_quarz_springquarz.xml"/>

2、定时任务详细配置(一定要记得加入对应的命名空间)

    以下是我个人理解,你要配置一个定时任务,需要定义四部分主要内容:

    a)你需要把你的定时任务类加入到spring 容器 中,你可以用注解,也可以用配置bean的方式。

    b)org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean ,配置一个详细调度任务的配置。

        里面有两个参数,一个是 targetObject:引用你的定时任务类  一个是targetMethod :定时任务类里面的执行方法

    c) org.springframework.scheduling.quartz.CronTriggerBean,调度器的配置,说白了就是指定任务的调度时间里面也

        有两个参数,一个是jobDetail:对应你配置详细调度任务的bean 一个是 cronExpression 执行时间

    d)org.springframework.scheduling.quartz.SchedulerFactoryBean 触发任务的工厂。里面也有两个参数一个是

        jobDetails:对应的是你的任务调度详细配置,一个是triggers就是调度器的时间,这两个就是指向你刚才配的两个bean

        就对了。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:lang="http://www.springframework.org/schema/lang"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:task="http://www.springframework.org/schema/task"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
    <!-- 把定时任务的类注入到spring 中 -->
    <bean id="springQuarz" class="com.liyi.test.quarz.SpringQuarz"></bean>
     
    <!-- 配置定时任务的作业类 -->
    <bean id="springQuarzDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="springQuarz"></ref>
        </property>
        <property name="targetMethod">
            <value>test</value>
        </property>
    </bean>
    <!-- 配置定时任务的调度器 -->
      <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
         <property name="jobDetail" ref="springQuarzDetail" /> 
         <property name="cronExpression" value="0/5 * * * * ?" /> 
     </bean> 
 
<!--      <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">  -->
<!--           <property name="jobDetail" ref="springQuarzDetail" /> -->
<!--              <property name="repeatInterval" value="5000" /> -->
<!--           <property name="startDelay" value="1000" /> -->
<!--      </bean>  -->
     
     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="jobDetails">
           <list>
              <ref bean="springQuarzDetail" />
           </list>
        </property>
      
        <property name="triggers">
            <list>
            <ref bean="cronTrigger" />
            </list>
        </property>
    </bean>
 
</beans>

启动项目,项目就会每隔5秒执行一下你的定时任务。
分享到:
评论

相关推荐

    spring4 + quarz2 集群

    在IT行业中,Spring框架是Java企业级应用开发的首选,而Quartz2是一个强大的作业调度库,常用于处理定时任务。本篇文章将深入探讨如何在Spring4中集成Quartz2来构建一个高可用的集群环境。 首先,让我们理解Spring4...

    spring3+quartz2 定时调度例子,能正常运行的程序

    spring3.2.4+quartz2.2.0 定时调度例子,能正常运行的程序

    使用spring自带quarz实现定时处理

    在处理定时任务时,Spring引入了Quartz库,使得开发者能够轻松地在Spring应用中实现定时任务的调度。Quartz是一个开源的作业调度框架,支持复杂的时间调度策略,可以用于执行一次性的或重复性的任务。 **Quartz与...

    quarz分布式定时任务

    邮易购系统面临定时任务的挑战,原先采用的是Linux操作系统内置的`cron`工具来调用shell脚本实现定时任务。但是,这种方式存在明显的缺陷: 1. **高可用性(HA)缺失**:若执行定时任务的机器发生故障,则会导致...

    Spring4集成quartz2.2.1

    Spring框架是Java开发中最常用的轻量级框架之一,它提供了丰富的功能,如依赖注入、AOP(面向切面编程)以及各种模块支持。Quartz则是Java领域中的一...这个过程使得我们可以灵活地在Spring应用中管理和执行定时任务。

    spring定时任务

    在Spring中,我们可以实现各种定时任务,以自动化执行特定的周期性操作。本篇文章将详细探讨Spring框架实现的三种定时任务方式:框架自带的Task Execution and Scheduling,Quartz Scheduler的集成以及使用注解进行...

    Spring quartz 定时任务调度

    Spring Quartz 是一个强大的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Spring框架中集成Quartz,可以充分利用Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming...

    Spring整合Quartz定时任务实例

    总之,Spring与Quartz的结合使得定时任务的管理更加灵活和便捷,它允许开发者专注于任务的业务逻辑,而无需关注调度的具体实现。通过合理配置,可以实现复杂多样的定时任务调度,提高系统的自动化程度。

    Spring Boot 配置 Quartz 定时任务(csdn)————程序.pdf

    Spring Boot 配置 Quartz 定时任务(csdn)————程序

    spring和quartz的定时器的启动和停止例子

    通过以上步骤,我们可以灵活地在Spring应用中使用Quartz实现定时任务的启动和停止。在实际项目中,还可以根据需求对任务进行分组、优先级排序、任务依赖设置等高级功能,以满足复杂的调度需求。记得在生产环境中,...

    spring quartz 表达式在线生成器

    通常,这样的示例会包含Spring配置文件(如`applicationContext.xml`或`application.yml`)、Java配置类、定时任务类(实现`org.quartz.Job`接口)以及触发器配置(使用`org.quartz.Trigger`)。 总的来说,了解和...

    quartz.zip定时任务

    首先,Quartz提供了强大的定时任务管理功能。你可以创建、调度、启动和停止作业,甚至可以在运行时修改它们的调度参数。作业(Job)是你要执行的任务,而触发器(Trigger)则定义了作业何时被执行。例如,你可以设置...

    spring 调度实例

    通过上述步骤,你可以利用Spring Task或Quartz Scheduler轻松实现定时任务的调度。在实际应用中,可以根据具体需求选择合适的调度工具。Spring Task适合简单的定时任务,而Quartz Scheduler则更适合需要复杂调度逻辑...

    Spring 4.2 集成 Quartz2 任务调度示例

    集成Spring 4.2.2和Quartz 2.2.2可以为你的应用程序提供强大的定时任务能力。通过合理配置,你可以创建复杂的时间调度策略,并利用Spring的依赖注入和事务管理功能,实现高度可维护和可扩展的后台任务。在实际项目中...

    Quarz相关资料.zip

    Quarz是一个强大的Java作业调度框架,用于在应用程序中安排和执行任务。它允许开发者创建、管理和调度复杂的作业,使得程序能够自动在指定的时间执行特定的任务。本资料压缩包包含了Quarz的学习教程文档和相关的Jar...

    ssm框架+quartz2.2Jar包

    这个压缩包包含的是SSM框架与Quartz 2.2版本的集成,用于实现定时任务管理。接下来,我们将深入探讨SSM框架的各个组件以及Quartz的相关知识点。 **Spring框架** 是一个全面的、开源的应用程序框架,主要负责依赖...

    quartz demo

    Quartz 是一个开源的工作调度框架,常用于Java应用程序中实现定时任务的管理。Spring框架与Quartz的整合,使得在Spring应用中配置和管理定时任务变得更加便捷。在"quartz demo"这个项目中,我们将探讨如何在Spring...

    quarz jar 全

    综上所述,Quartz 是一个强大且灵活的作业调度框架,结合 Apache Commons Collections 提供的集合工具,能够帮助开发者构建高效、可靠的定时任务解决方案。在实际项目中,根据具体需求正确配置和使用 Quartz,可以...

    quartz Web应用实例

    Quartz 是一个强大的、开放源码的作业调度框架,它为 Java 应用程序提供了完全的定时服务。在Web环境中,Quartz 可以被用来安排任何可运行的对象,如执行数据库更新、发送电子邮件或者调用Web服务等任务。本实例——...

    my-springboot-quartz-demo.zip

    Quartz是一个开源的作业调度框架,支持复杂的调度策略,可以实现定时任务的执行。 在"my-springboot-quartz-demo.zip"这个压缩包中,包含了一个基于Springboot集成Quartz的例子,我们来详细探讨一下这个示例中的...

Global site tag (gtag.js) - Google Analytics