使用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框架提供了强大的任务调度能力,使得开发者能够轻松地在Java环境中实现这一功能。本篇将深入探讨如何利用Spring进行任务调度,并结合代码演示和Quartz库的使用来丰富这一主题。 首先,Spring提供了两种主要的...
本资料“Spring实现任务调度”将深入探讨如何在Spring中设置和管理定时任务。 首先,我们需要理解Spring中的任务调度机制。Spring通过其`Task`模块提供了任务调度的功能,主要由两个核心组件构成:`TaskExecutor`和...
在IT行业中,Spring框架是Java开发中的一个核心组件,它提供了丰富的功能,包括但不限于依赖注入、AOP(面向切面编程)以及我们今天要讨论的重点——任务调度。Spring的任务调度模块使得开发者能够在应用中轻松地...
这个“spring 任务调度实现代码例子”很可能是包含了一些示例代码,用于演示如何在Spring应用中配置和使用任务调度。下面将详细解释Spring任务调度的关键概念和实现方法。 1. **Spring Task模块** Spring Task是...
在本文中,我们将详细介绍如何将 Spring 整合任务调度框架 Quartz,从而实现任务调度的自动化。 一、使用配置文件方式整合 Quartz 在 Spring 中,可以使用配置文件方式来整合 Quartz。这种方式非常简单,开发者只...
改分布式任务调度特性如下: 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手; 2、动态:支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,即时生效; 3、调度中心HA(中心式):调度...
Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。结合Spring框架,可以方便地在企业级应用中实现复杂的时间触发逻辑。本实例提供了可以直接运行的任务调度解决方案,既...
Spring中的任务调度是实现应用程序自动化运行任务的重要工具,而Quartz是Java领域广泛使用的开源任务调度框架。在本文中,我们将深入探讨如何在Spring中集成Quartz进行任务调度,并通过一个简单的示例来理解其工作...
Java实现任务调度的过程中,涉及到的关键技术和工具包括Quartz调度器和Spring框架。Quartz是一个功能强大的开源作业调度系统,它可以用来整合到Java应用程序中,以实现作业调度的功能。Spring框架是一个广泛使用的...
总结来说,要使用Spring实现任务的自动调度,你需要包含`quartz-all-1.8.4.jar`以及Spring的相关依赖。然后在Spring配置文件中定义`SchedulerFactoryBean`、`JobDetail`和`Trigger`,并实现具体的`Job`类。这样,就...
Spring框架和Quartz是两个广泛使用的工具,它们可以协同工作以实现复杂和灵活的任务调度。本篇文章将深入探讨如何使用Spring与Quartz结合来创建一个任务调度的小例子。 首先,Spring是一个开源的Java企业级应用开发...
在Spring框架中,任务调度是实现应用程序自动化执行任务的关键特性,尤其对于那些需要定期或按特定时间间隔运行的任务。Spring提供了三种主要的任务调度实现方式:Spring内置的任务调度器(TaskScheduler),Quartz ...
在IT行业中,任务调度是一项重要的...此外,由于Spring的容器特性,我们可以方便地管理Job的依赖,实现任务的解耦和复用,提高代码的可维护性。在实际开发过程中,不断调试和优化,可以打造出高效稳定的定时任务系统。
本篇文章将深入探讨Spring任务调度的实现方法,以及如何利用Quartz库来增强任务管理能力。 首先,让我们理解Spring的任务调度。Spring通过`@Scheduled`注解提供了一种简单而强大的方式来执行定时任务。这个注解可以...
**Spring Quartz 任务调度** Spring Quartz 是一个基于 Java 的任务调度框架,它允许开发者定义定时任务并在应用程序中灵活地调度这些任务。这个框架是 Spring 和 Quartz Scheduler 的集成,提供了与 Spring 框架的...
标题“Spring quartz任务调度”指的是在Java开发中利用Spring框架集成Quartz库来实现应用程序的任务调度功能。Quartz是一款开源的作业调度框架,它允许开发者安排任务在特定时间执行,而Spring框架则提供了与Quartz...
本实例主要探讨了Spring如何实现任务调度,特别是使用Quartz和Timer两种不同的方法。 首先,Quartz是一个开源的作业调度框架,它允许开发者创建、调度和执行作业,这些作业可以是简单的Java类或者Spring Bean。...
在Spring框架中,定时任务调度是一项非常重要的功能,它允许我们按照预定的时间间隔执行特定的任务。这个"Spring定时调度简单实现源码"很显然是一个关于如何在Spring中配置和使用定时任务的示例代码包。下面我们将...
在Spring框架中,任务调度是实现应用程序自动化执行定时任务的关键特性。这允许开发者安排任务在特定的时间间隔执行,而无需手动触发。本篇文章将详细探讨Spring中的两种常见任务调度工具:`TimerTask`和`Quartz`,...