`

spring实现任务调度

 
阅读更多

使用spring+quartz实现任务调度

这里使用的是spring 2.5

相关的jar文件:

commons-collections-3.1.jar,jta.jar,quartz-all-1.6.0.jar,spring.jar,spring-context.jar,spring-context-support.jar

 

1. web.xml ,配置spring

 

<context-param>

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

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

 

</listener>

 

2. 编写任务类 QuartzJob1

 

public class QuartzJob1

    public void work(){  

        task1();  

    }  

    public void task1(){  

        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        System.out.println(df.format(new Date().getTime())+" 调度任务1  每隔5秒钟执行一次");  

    }  

 }

 

3. quartz 配置(applicationContext.xml)

<!-- 定时器配置 -->

  <!-- 任务1 -->

<bean id="quartzJob1" class="com.timer.job.QuartzJob1" >

<!--<property name="publishDao" ref="publishDao" />-->

</bean>

<bean id="jobtask1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<property name="targetObject">

<ref bean="quartzJob1" />

</property>

<property name="targetMethod">

<value>work</value>

</property>

 <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->  

         <property name="concurrent" value="true"/>  

</bean>

<bean id="cronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerBean">

<property name="jobDetail">

<ref bean="jobtask1" />

</property>

<property name="cronExpression">

 <!-- 每隔5秒执行一次 <value>0/10 * * * * ?</value> -->  

 <!-- 每隔10秒执行一次 <value>0/10 * * * * ?</value> -->  

          <!-- 每天每隔10分钟执行一次 <value>0 0/10 * * * ?</value> -->

<value>0/5 * * * * ?</value>

</property>

</bean>

 

<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->  

<bean id="startQuertz" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

<property name="triggers">

<list>

<ref bean="cronTrigger1" />

</list>

</property>

</bean>

<!-- 定时器END -->

 

启动web服务器,可以看到spring任务已经按周期性的执行了,大功告成。

 

原文链接:

http://blog.csdn.net/u013614451/article/details/40711643

 

 

另一种配置方法,服务器启动后执行一次任务然后再周期性执行任务,使用SimpleTriggerBean

 

 <!-- 定时扫描周期,如果已到期,则结束周期 -->
    <!-- 定时任务的工作Bean,普通的Java类 -->
     <bean id="quartzJob" class="com.gy.xf.task.TestJob" >
     		<property name="dao" ref="alarmFireDispatchDao"></property>
     </bean>
       <!-- 定义生成工作对象的工厂,并为工厂设定目标对象targetObject属性、目标对象的工作方法targetMethod属性 -->
     <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
       <property name="targetObject" ref="quartzJob"/>
       <property name="targetMethod">
         <value>test</value>
       </property>
       <property name="concurrent" value="false"/>
     </bean>
     <!-- 任务调度计时器,进行定时设置。CronTriggerBean能进行非常精确的定时设置 -->
     <bean id="cronQuartzClock1" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="jobDetail" />
        <!-- cron表达式 -->
        <property name="cronExpression">
            <!--   0 0 */2 * * ? 每两小时、整点触发 -->
            <!--   0 0/2 * * * ? 每两分钟  -->
            <!--   0/5 * * * * ? 每五秒钟  -->
            <!--   0 15 10 * * ? 每天Y分X点触发  -->
            <value>0 0 */1 * * ?</value>
        </property>
    </bean>
    <bean id="workflowTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">  
        <property name="jobDetail" ref="jobDetail" />  
        <!-- 这里定义的是服务启动后多少秒之后启动定时器,单位是毫秒,下面设置的是十秒 -->  
        <property name="startDelay" value="10000" />  
        <!-- 这里定义的是循环的周期,单位是毫秒 -->  
        <property name="repeatInterval" value="120000" />  
    </bean>  
    <!-- 调度任务触发器,启动定时任务-->
    <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

        <property name="triggers">
            <list>	
                <ref bean="workflowTrigger"/>
            </list>
        </property>
    </bean>

 

 

 

 

分享到:
评论

相关推荐

    Spring实现任务调度

    Spring框架提供了强大的任务调度能力,使得开发者能够轻松地在Java环境中实现这一功能。本篇将深入探讨如何利用Spring进行任务调度,并结合代码演示和Quartz库的使用来丰富这一主题。 首先,Spring提供了两种主要的...

    Spring实现任务调度.rar

    本资料“Spring实现任务调度”将深入探讨如何在Spring中设置和管理定时任务。 首先,我们需要理解Spring中的任务调度机制。Spring通过其`Task`模块提供了任务调度的功能,主要由两个核心组件构成:`TaskExecutor`和...

    spring 任务调度

    在IT行业中,Spring框架是Java开发中的一个核心组件,它提供了丰富的功能,包括但不限于依赖注入、AOP(面向切面编程)以及我们今天要讨论的重点——任务调度。Spring的任务调度模块使得开发者能够在应用中轻松地...

    spring 任务调度实现代码例子

    这个“spring 任务调度实现代码例子”很可能是包含了一些示例代码,用于演示如何在Spring应用中配置和使用任务调度。下面将详细解释Spring任务调度的关键概念和实现方法。 1. **Spring Task模块** Spring Task是...

    Spring整合任务调度框架Quartz

    在本文中,我们将详细介绍如何将 Spring 整合任务调度框架 Quartz,从而实现任务调度的自动化。 一、使用配置文件方式整合 Quartz 在 Spring 中,可以使用配置文件方式来整合 Quartz。这种方式非常简单,开发者只...

    spring分布式任务调度

    改分布式任务调度特性如下: 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手; 2、动态:支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,即时生效; 3、调度中心HA(中心式):调度...

    Spring Quartz 任务调度实例

    Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。结合Spring框架,可以方便地在企业级应用中实现复杂的时间触发逻辑。本实例提供了可以直接运行的任务调度解决方案,既...

    spring任务调度(Quartz )

    Spring中的任务调度是实现应用程序自动化运行任务的重要工具,而Quartz是Java领域广泛使用的开源任务调度框架。在本文中,我们将深入探讨如何在Spring中集成Quartz进行任务调度,并通过一个简单的示例来理解其工作...

    java实现任务调度

    Java实现任务调度的过程中,涉及到的关键技术和工具包括Quartz调度器和Spring框架。Quartz是一个功能强大的开源作业调度系统,它可以用来整合到Java应用程序中,以实现作业调度的功能。Spring框架是一个广泛使用的...

    spring实现任务的自动调度所需的jar包

    总结来说,要使用Spring实现任务的自动调度,你需要包含`quartz-all-1.8.4.jar`以及Spring的相关依赖。然后在Spring配置文件中定义`SchedulerFactoryBean`、`JobDetail`和`Trigger`,并实现具体的`Job`类。这样,就...

    Spring+Quartz实现任务调度的小例子

    Spring框架和Quartz是两个广泛使用的工具,它们可以协同工作以实现复杂和灵活的任务调度。本篇文章将深入探讨如何使用Spring与Quartz结合来创建一个任务调度的小例子。 首先,Spring是一个开源的Java企业级应用开发...

    spring的三种任务调度实现方式lib

    在Spring框架中,任务调度是实现应用程序自动化执行任务的关键特性,尤其对于那些需要定期或按特定时间间隔运行的任务。Spring提供了三种主要的任务调度实现方式:Spring内置的任务调度器(TaskScheduler),Quartz ...

    spring quartz 任务调度

    在IT行业中,任务调度是一项重要的...此外,由于Spring的容器特性,我们可以方便地管理Job的依赖,实现任务的解耦和复用,提高代码的可维护性。在实际开发过程中,不断调试和优化,可以打造出高效稳定的定时任务系统。

    Spring任务调度demo

    本篇文章将深入探讨Spring任务调度的实现方法,以及如何利用Quartz库来增强任务管理能力。 首先,让我们理解Spring的任务调度。Spring通过`@Scheduled`注解提供了一种简单而强大的方式来执行定时任务。这个注解可以...

    Spring Quartz 任务调度

    **Spring Quartz 任务调度** Spring Quartz 是一个基于 Java 的任务调度框架,它允许开发者定义定时任务并在应用程序中灵活地调度这些任务。这个框架是 Spring 和 Quartz Scheduler 的集成,提供了与 Spring 框架的...

    Spring quartz任务调度

    标题“Spring quartz任务调度”指的是在Java开发中利用Spring框架集成Quartz库来实现应用程序的任务调度功能。Quartz是一款开源的作业调度框架,它允许开发者安排任务在特定时间执行,而Spring框架则提供了与Quartz...

    spring任务调度实例

    本实例主要探讨了Spring如何实现任务调度,特别是使用Quartz和Timer两种不同的方法。 首先,Quartz是一个开源的作业调度框架,它允许开发者创建、调度和执行作业,这些作业可以是简单的Java类或者Spring Bean。...

    Spring定时调度简单实现源码

    在Spring框架中,定时任务调度是一项非常重要的功能,它允许我们按照预定的时间间隔执行特定的任务。这个"Spring定时调度简单实现源码"很显然是一个关于如何在Spring中配置和使用定时任务的示例代码包。下面我们将...

    Spring 中任务调度 TimeTask 与quartz简单用法

    在Spring框架中,任务调度是实现应用程序自动化执行定时任务的关键特性。这允许开发者安排任务在特定的时间间隔执行,而无需手动触发。本篇文章将详细探讨Spring中的两种常见任务调度工具:`TimerTask`和`Quartz`,...

Global site tag (gtag.js) - Google Analytics