`
cobo85
  • 浏览: 115452 次
  • 性别: 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(作业调度)

    虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    Spring中文帮助文档

    2.2.5. 在classpath中自动搜索组件 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.3.3. 对bean命名pointcut( bean name pointcut element)的支持 2.3.4. 对AspectJ装载...

    spring4.1核心包

    在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。这个jar 文件为Spring 核心提供了大量扩展。可以找到使用...

    spring-boot示例项目

    在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目需求的各种组件和积累各种解决方案。基于这样的背景下,我开源了本示例项目,方便大家快速上手Spring Boot、...

    Spring攻略(第二版 中文高清版).part1

    1.14 从Classpath中扫描组件 50 1.14.1 问题 50 1.14.2 解决方案 51 1.14.3 工作原理 51 1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决...

    Spring攻略(第二版 中文高清版).part2

    1.14 从Classpath中扫描组件 50 1.14.1 问题 50 1.14.2 解决方案 51 1.14.3 工作原理 51 1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决...

    Spring 2.0 开发参考手册

    18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS 19.2.1. JmsTemplate 19.2.2. 连接工厂 19.2.3. (消息)目的地管理 19.2.4. 消息侦听容器 19.2.5. 事务管理 19.3. 发送...

    Spring API

    2.2.5. 在classpath中自动搜索组件 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.3.3. 对bean命名pointcut( bean name pointcut element)的支持 2.3.4. 对AspectJ装载...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop ...18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS ...

    单点登录源码

    | ├── zheng-cms-job -- 消息队列、任务调度等[端口:2223] | └── zheng-cms-web -- 网站前台[端口:2224] ├── zheng-pay -- 支付系统 | ├── zheng-pay-common -- pay系统公共模块 | ├── zheng-pay-dao...

    Active4j-boot快速开发框架-其他

    以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,layui作为前端框架并进行前后端分离的开源框架。...

    Active4j-oa办公系统-其他

    以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,JSP作为前端页面引擎,采用JSTL标签库封装组件的...

Global site tag (gtag.js) - Google Analytics