`
确实比较男
  • 浏览: 115632 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

任务调度Quartz和spring整合

阅读更多

前几天使用到了任务调度框架Quartz,并且和spring进行整合使用,现在在这里做下记录:

1. 首先导入Quartz的jar包,可以去官网下载,若是使用maven的话就直接使用maven导入:

 

<dependency>
	<groupId>org.quartz-scheduler</groupId>
		<artifactId>quartz</artifactId>
		<version>1.8.6</version>   <!-- 最新版本是1.8.6 -->
	</dependency>

2. 导入spring的包:

<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context-support</artifactId>
		<version>3.2.4.RELEASE</version>
	</dependency>

3. 接下来就是实现任务类 ,有两种方式:

 

3.1第一种方式:

 

package com.hqhp.quartz;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class JobQuartz extends QuartzJobBean {

	  private int timeout;

	  public JobQuartz(){
	  }
	  /**
	   * Setter called after the ExampleJob is instantiated
	   * with the value from the JobDetailBean (5)
	   */
	  public void setTimeout(int timeout) {
	    this.timeout = timeout;
	  }

	  protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException {
	      // do the actual work
		  System.out.println("quartz test success...."+timeout);
	  }
	}

相应的spring中的配置文件代码:

 

 

<!-- 第一种方式实现JobDetail -->
	<bean name="jobQuartzDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
		<property name="jobClass" value="com.hqhp.quartz.JobQuartz" />
		<property name="Durability" value="true" />
		<property name="jobDataAsMap">
			<map>
				<entry key="timeout" value="5" />
			</map>
		</property>
	</bean>

3.2 第二种方式:

 

 

package com.hqhp.quartz;
public class ExampleBusinessObject {
	 // properties and collaborators
	  public void doIt() {
	    // do the actual work
		  System.out.println("do it ...");
	  }

}

相应的sping的配置文件:

 

 

<!-- 第二种方式实现JobDetail -->
	<bean id="exampleBusinessObject" class="com.hqhp.quartz.ExampleBusinessObject" />
	<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="exampleBusinessObject" />
		<property name="targetMethod" value="doIt" />
	</bean>

4. 开始配置触发器,触发器也有两种方式,和任务类的方式对应:

 

4.1 第一种方式

 

<!-- 触发器的一种方式 -->
	<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
		<!-- see the example of method invoking job above -->
		<property name="jobDetail" ref="jobQuartzDetail" />
		<!-- 5 seconds -->
		<property name="startDelay" value="5000" />
		<!-- repeat every 10 seconds -->
		<property name="repeatInterval" value="10000" />
	</bean>

4.2 第二种方式:

 

 

<!-- 触发器第二种方式 -->
	<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail" ref="jobDetail" />
		<property name="cronExpression" value="0 29 13 * * ?" />   <!-- 每天13:29会执行一次配置的任务 -->
	</bean>

5. 最后就是把触发器加入到任务列表中:

 

 

<bean id='testScheduler' class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="simpleTrigger" />
				<ref bean="cronTrigger" />
			</list>
		</property>
	</bean>


6. 最后说下cronExpression的表达式的参考:
http://www.blogjava.net/javainthink/archive/2006/10/19/76077.html




 

分享到:
评论

相关推荐

    Spring整合任务调度框架Quartz

    Quartz 本身就提供了将任务和触发器持久化到数据库中的功能,这样可以解决上述问题。要使用这种方式,开发者需要安装 Quartz 数据库表,并配置 JobStoreTX。 首先,需要安装 Quartz 数据库表。Quartz 包括了所有被...

    quartz整合springbatch动态集群定时实现mysql参考

    Quartz与Spring的集成使得在Spring应用中管理任务变得更加容易,可以利用Spring的依赖注入和生命周期管理。 Spring Batch是一个用于处理大量数据的批处理框架。它提供了诸如事务管理、错误处理、读写器和处理器抽象...

    spring任务调度(Quartz )

    在本文中,我们将深入探讨如何在Spring中集成Quartz进行任务调度,并通过一个简单的示例来理解其工作原理。 首先,要在Spring中使用Quartz,你需要将`quartz-all-1.5.2.jar`等相关的Quartz库添加到项目的类路径中。...

    spring整合quartz定时任务调度

    以上就是Spring整合Quartz实现定时任务调度的基本流程。在实际开发中,你可能需要根据项目需求对触发规则、任务逻辑、并发控制等方面进行更复杂的配置和设计。同时,Quartz还支持集群部署,可以在多台服务器上实现...

    spring 任务调度

    Spring Task是Spring内置的轻量级任务调度器,而Quartz是更强大的第三方调度库,可以在Spring中集成使用。 1. **Spring Task** - **基本概念**:Spring Task是Spring框架的一部分,提供了基本的定时任务调度功能,...

    Quartz和Spring整合

    Quartz和Spring整合是企业级应用中常见的任务调度解决方案,Quartz是一个开源的作业调度框架,而Spring则是Java领域广泛使用的轻量级框架。这两者的整合使得开发者可以在Spring管理的bean中灵活地定义和执行定时任务...

    Quartz与Spring整合练习源代码

    将Quartz与Spring整合,可以方便地管理和控制定时任务,同时利用Spring的依赖注入和管理功能,提高代码的可维护性和可测试性。 Quartz的核心概念包括Job、Trigger和Scheduler。Job是实际需要执行的任务,Trigger是...

    quartz和spring-quartz

    Quartz和Spring-Quartz是两个在Java世界中广泛使用的定时任务管理框架。Quartz是一个开源的作业调度框架,允许应用程序定义和调度任务在特定时间执行。而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring...

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

    Quartz可以集成到Spring中,利用Spring的依赖注入和配置能力,使得任务调度更加简洁和易于维护。 **一、Spring与Quartz的集成** 1. **配置Quartz** 在Spring应用中集成Quartz,首先需要添加Quartz的相关依赖到...

    spring集成quartz 任务调度

    Spring集成Quartz是一款高效的任务调度框架,用于在Java应用程序中执行计划、周期性的任务。Quartz与Spring的结合,使得我们可以充分利用Spring的依赖注入(DI)和AOP特性,简化了任务调度的复杂性。 首先,Quartz...

    spring2与quartz在Web整合

    通过理解和掌握这些知识点,开发者能够有效地在 Spring 2 和 Quartz 之间建立桥梁,实现 Web 应用中的复杂任务调度功能。对于出现问题的整合,开发者可以通过分析源码、查看日志和调试来定位和解决问题,进一步提升...

    quartz和spring整合完整测试

    Quartz和Spring的整合是企业...下载提供的"quartzSpring"压缩包文件,你可以找到示例代码和配置,进一步学习如何在实际项目中实现Quartz和Spring的整合。如果有任何问题,欢迎提问,我将乐意提供更多的帮助和参考资料。

    spring quartz 任务调度

    在实际项目中,我们还需要确保正确配置了数据库连接,因为Quartz通常将任务和触发器存储在数据库中。 总的来说,Spring与Quartz的结合使用为开发者提供了强大且灵活的任务调度能力。你可以根据需求设置不同的触发...

    Quartz任务调度器

    在与Spring框架整合后,Quartz能更好地融入到现有的应用架构中,实现更高效的资源管理和任务调度。 首先,我们要理解Quartz的核心概念。`Job`是Quartz中的基本工作单元,它代表一个要执行的任务。而`Trigger`则定义...

    Quartz--JAVA定时任务\Java应用:Java调度任务和Spring Quartz (1)

    通过Spring与Quartz的整合,可以轻松地在Spring应用中管理定时任务,提高代码的可维护性。 总结来说,Quartz是Java中强大的定时任务库,通过它我们可以方便地创建和管理复杂的任务调度,包括但不限于在特定时间点...

    Java应用:Java调度任务和Spring Quartz (2)

    Spring框架提供了对任务调度的强大支持,其中Spring Quartz是一个常用的集成解决方案。本篇将深入探讨如何使用Java和Spring Quartz来配置和调度cron任务。 首先,我们需要理解Spring Quartz的核心组件。`Job`接口...

    Spring Quartz 任务调度实例

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

    quartz整合springbatch定时集群实现mysql参考模版

    Quartz和SpringBatch是两种在Java开发中广泛使用的框架,Quartz用于任务调度,而SpringBatch则用于批量处理。在大型分布式系统中,结合这两者可以实现强大的定时任务集群功能,尤其是在需要对大量数据进行定时处理的...

    quartz+spring集成完整开发,富含文档说明

    将Quartz与Spring集成可以充分利用Spring的IoC(Inversion of Control)和AOP(Aspect-Oriented Programming)特性,使任务调度变得更加灵活和易于管理。这样的集成可以帮助开发者在SSH(Struts、Spring、Hibernate...

    spring+quartz任务调度代码版

    在Spring整合Quartz的过程中,首先需要在Spring配置文件中声明Scheduler工厂bean,然后定义Job和Trigger的bean。Spring通过`org.springframework.scheduling.quartz.SchedulerFactoryBean`来创建和管理Quartz的...

Global site tag (gtag.js) - Google Analytics