`
cobo85
  • 浏览: 116951 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring中集成任务调度组件Quartz

    博客分类:
  • J2EE
阅读更多

       不多说了,直接贴配置文件说明吧。

一、继承QuartzJobBean的配置

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>	
	<bean name="warningTask" class="org.springframework.scheduling.quartz.JobDetailBean">
    	<property name="jobClass">
    		<value>com.xxx.xxx.TimedTask</value><!-- 任务类其继承QuartzJobBean-->
    	</property> 
    	<property name="jobDataAsMap">
    		<map>
    			<entry key="earlyWarningMainThread">
    				<ref bean="earlyWarningMainThread" />  				
    			</entry>
    			<entry key="superviseRecordDomain">
    				<ref bean="superviseRecordDomain" />  <!-- 需要spring进行注入的服务-->				
    			</entry>
    		</map>
    	</property>	
    </bean>
	<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    	<property name="jobDetail">
    		<ref bean="warningTask"/>
    	</property>
    	<property name="cronExpression">
    		<value>${task.time}</value><!-- 从外部注入的定时时间,具体可以查阅时间格式定义-->
    	</property>
    </bean>
    
    <bean id="quartzFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	    <property name="triggers">
	        <list>
	            <ref local="cronTrigger" />
	        </list>
	    </property>
	</bean>
</beans>

 其中TimedTask代码如下

  

public class TimedTask extends QuartzJobBean{

	
	protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
        //定时方法
        //do something

    }
}

 

二、指定执行特定方法的配置

 

  

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>	
	<bean id="sampledDataTask" class="com.xxx.SampledDataTask"/>
	<bean id="sampledDataJobDetail"

		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

    	<property name="targetObject"><ref bean="sampledDataTask"/></property><!--指定那个类 -->

    	<property name="targetMethod"><value>task</value></property><!--指定类中的那个方法,为方法名-->
    </bean>

               <!--定时执行的配置-->
	<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    	<property name="jobDetail">
    		<ref bean="sampledDataJobDetail"/>
    	</property>
    	<property name="cronExpression">
    		<value>${task.time}</value>
    	</property>
    </bean>
    
    <!-- 按一定频率执行的配置 -->
	<bean id="importDataJobDetail"

		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

    	<property name="targetObject"><ref bean="xmlDataImpDaemon"/></property>

    	<property name="targetMethod"><value>monitor</value></property>
    </bean>
	<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    	<property name="jobDetail">
    		<ref bean="importDataJobDetail"/>
    	</property>
    	<property name="startDelay">
    		<value>10000</value>
    	</property>
    	<property name="repeatInterval">
    		<value>${dataSwitch.repeat}</value>
    	</property>
    </bean>

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

 PS:个人偏向第二种的用法,第一种与quartz的耦合性太强,并且在第一种的方式里面,必须配置指定注入那些服务,不能像其他那样只声明就可以利用Spring的IOC

分享到:
评论

相关推荐

    spring任务调度(Quartz )

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

    spring+quartz任务调度代码版

    本项目"spring+quartz任务调度代码版"显然是一个结合了这两者的实践案例,旨在展示如何在Spring环境下集成和使用Quartz进行任务调度。 Spring框架是一个开源的应用框架,它提供了丰富的功能,包括依赖注入、AOP...

    spring 任务调度

    - **Job和Trigger**:在Quartz中,Job是执行的具体任务,Trigger则是触发任务执行的规则。你可以根据需求定义多个Job和Trigger,并将它们关联起来。 3. **使用场景** - **日志清理**:定期清理旧的日志文件,释放...

    spring+springMVC+mybatis+quartz动态定时任务创建

    在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+mybatis+quartz动态定时任务创建"就是一个常见的技术栈,用于实现这样的目标。这个组合充分利用了各组件的优势,提供了强大的后端服务支持...

    Spring实现任务调度.rar

    除了内置的`TaskScheduler`,Spring还支持集成第三方任务调度库,如Quartz。Quartz是一个强大且功能丰富的作业调度框架,允许创建复杂的调度规则。在描述中提到的`quartz-all-1.6.1.jar`是Quartz库的旧版本,可能...

    Spring quartz任务调度

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

    Spring集成Quartz调度框架.pdf

    **作业**(Job):Quartz中的作业是指一个可执行的任务,该任务通常由开发者实现,用于完成具体的业务逻辑。Quartz框架负责按照预设的规则调度这些作业的执行。 **触发器**(Trigger):触发器定义了作业的执行时间...

    Spring的定时调度--Quartz

    1. **作业(Job)**:Quartz中的作业是实际需要执行的任务,它定义了任务的行为。一个作业类可以被多个触发器触发,但每次只能有一个实例运行。 2. **触发器(Trigger)**:触发器决定何时启动作业。它可以是简单的...

    定时框架spring+quartz

    "定时框架spring+quartz"的结合,就是将Quartz的定时功能与Spring的强大集成能力完美融合,为开发者提供了一种高效、灵活的定时任务解决方案。 Spring框架提供了多种方式来管理定时任务,包括使用Spring的`@...

    SpringQuartz的使用文档

    SpringQuartz是一个强大的任务调度框架,它在Java应用程序中用于自动化执行特定任务,如定时生成文件、统计数据或执行后台清理工作。Quartz是开源的,具有高度灵活的调度功能,能够根据预定义的时间表触发任务,同时...

    Spring任务调度配置及说明(spring+quartz)

    在Java开发中,任务调度是不可或缺的一部分,Spring框架提供了与Quartz集成的能力,使得我们可以方便地管理和执行定时任务。本文将详细介绍如何通过Spring和Quartz搭建任务调度系统,并解析配置文件中的关键组件及其...

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

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

    定时调度-Spring集成Quartz

    通过Spring集成Quartz,开发者可以方便地在Java应用中实现复杂的定时任务调度。理解Quartz的核心组件、配置方式以及如何与Spring协作,是成功部署和维护定时任务的关键。同时,合理利用CronTrigger的灵活性,可以...

    spring任务调度实例

    Quartz与Spring的集成使得我们可以利用Spring的IoC(控制反转)和AOP(面向切面编程)特性来更好地管理我们的任务。在Spring中配置Quartz,我们需要添加相关的依赖,创建SchedulerFactoryBean,定义JobDetail和...

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

    在Quartz中实现动态集群,主要是通过共享JobStore实现的,例如使用SQLJobStore,这样所有节点都可以访问同一个作业存储,从而确保任务的一致性和避免冲突。 在这个项目中,结合Quartz和Spring Batch,开发者可能...

    spring2.0 Quartz 执行每天定时任务 普通普是执行任务

    标题中的“spring2.0 Quartz 执行每天定时任务 普通普是执行任务”涉及到的是在Spring 2.0框架中使用Quartz库来创建并执行每天定时任务的场景。Quartz是一款强大的开源作业调度框架,它可以用来按计划执行各种任务,...

    spring boot集成quartz定时器

    总结,Spring Boot集成Quartz定时器能够方便地创建和管理定时任务,同时利用Spring的依赖注入,使得Job可以灵活地调用其他服务或组件。这种方式使得我们的任务更加模块化和易于维护。在实际开发中,根据项目需求,...

    Spring调度器Quartz笔记

    总之,Quartz 是一个强大而灵活的定时任务调度框架,通过与 Spring 的集成,开发者可以方便地在应用中实现定时任务,而无需关心底层调度的复杂性。通过理解并熟练掌握这些基本概念和用法,你可以有效地利用 Quartz ...

    spring+quartz动态定时任务创建 +mybatis

    当结合Quartz,一个强大的任务调度库,我们可以实现动态的定时任务创建,这在业务逻辑中有着广泛的应用,如数据同步、定时报表生成等。 **Spring框架** Spring框架是Java开发者必备的工具之一。它提供了一个统一的...

    Spingboot+Quartz基于数据库的作业任务调度

    在Spring Boot项目中集成Quartz,我们可以利用Spring的依赖注入和生命周期管理,使定时任务的配置和管理变得更加便捷。 Quartz是一个开源的作业调度框架,它支持复杂的调度策略,例如重复、延迟执行等。Quartz能够...

Global site tag (gtag.js) - Google Analytics