`

spring +quartz 配置

 
阅读更多

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd   
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd ">
	
	
	<!-- 要调用的工作类 -->
	<bean id="synchronizeGameInfo" class="com.cyou.gamehistory.trigger.SynchronizeGameInfo">
	</bean>
	 <!-- 定义调用对象和调用对象的方法 -->
	<bean id="updateGameInfo" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="synchronizeGameInfo" />
		<property name="targetMethod" value="synchronizeGame" />
		<!-- 非并发 -->
		<property name="concurrent" value="false" /> 
	</bean>
	<!-- 定义触发时间 -->
	<bean id="updateGameTrigger" lazy-init="false" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail" ref="updateGameInfo"></property>
		<property name="cronExpression">  
            <!-- 每周星期天凌晨1点实行一次 -->  
            <value>0 0 1 ? * L</value>  
        </property>  
	</bean>
	<!-- 总管理类 -->
	<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref local="updateGameTrigger"/>
			</list>
		</property>
		<property name="quartzProperties">
			<props>
				<prop key="org.quartz.threadPool.threadCount">1</prop>
			</props>
		</property>
	</bean>
	
</beans>



 

 

第一步,在Spring配置文件中增加本业务类

<bean id="synchronizeGameInfo" class="com.cyou.gamehistory.trigger.SynchronizeGameInfo">


第二步,定义任务。在Spring配置文件中配置代理类MethodInvokingJobDetailFactoryBean,定义任务的详细信息。

<bean id="updateGameInfo" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="synchronizeGameInfo" />
		<property name="targetMethod" value="synchronizeGame" />
		<!-- 非并发 -->
		<property name="concurrent" value="false" /> 
</bean>



这个配置告诉Spring,我们的任务是执行id为synchronizeGameInfo的bean中的synchronizeGame函数。其中参数concurrent告诉Spring,不要并发运行这个任务。

第三步,配置一个触发器。在Spring配置文件中配置触发器类updateGameTrigger。

 

<bean id="updateGameTrigger" lazy-init="false" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail" ref="updateGameInfo"></property>
		<property name="cronExpression">  
            <!-- 每周星期天凌晨1点实行一次 -->  
            <value>0 0 1 ? * L</value>  
        </property>  
	</bean>


触发器将告诉Quartz两件事:在何时触发任务、触发哪个任务。其中属性参数cronExpression为调度时间,格式和unix上的crontab类似,其中问号表示忽略该位置(星期)上的值。属性参数jobDetail指向具体的任务bean:updateGameInfo 。如果你有多个任务,每个任务的触发时间都不一样,则你可以在此配置多个不同的触发器。

 

 

第四步,配置一个调度器。在Spring配置文件中配置调度器类SchedulerFactoryBean。

 

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref local="updateGameTrigger"/>
			</list>
		</property>
		<property name="quartzProperties">
			<props>
				<prop key="org.quartz.threadPool.threadCount">1</prop>
			</props>
		</property>
	</bean>


该调度器用于管理触发器。只有在调度器中列表出现的触发器才被Quartz系统调度执行。至此,所有的配置已完成,任务已能正常跑了。

 

 

 

 

 

分享到:
评论

相关推荐

    Spring + Quartz配置实例(转载)

    标题 "Spring + Quartz配置实例(转载)" 暗示了我们将讨论如何在Java环境中整合Spring框架与Quartz作业调度库的使用。Quartz是一个开源的作业调度库,它允许开发者安排任务以在特定时间执行,而Spring框架则是一个...

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

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

    spring + quartz 集群配置

    java + quartz实现定时任务,实现集群配置,在集群环境下多节点运行定时Quartz定任务,就会存在重复处理任务的现象,为解决这一问题,下面我将介绍使用 Quartz 的 TASK ( 12 张表)实例化到数据库,基于数据库自动...

    定时框架spring+quartz

    2. **配置Quartz**:在Spring的配置文件(如applicationContext.xml)中,定义Quartz的相关bean,包括SchedulerFactoryBean、JobDetail和Trigger。这些配置会告诉Quartz如何启动、何时运行以及运行哪些任务。 3. **...

    spring+quartz demo

    在 Spring 的配置文件(如 `applicationContext.xml`)中,我们需要引入 Quartz 的配置,并声明一个 `SchedulerFactoryBean` 来实例化和配置 Quartz Scheduler。这通常包括定义数据源、JobDetail 和 Trigger。 2. ...

    spring+quartz定时小例子

    在 Spring 中配置 Quartz 需要定义一个 `SchedulerFactoryBean`,它负责创建和管理 Quartz 的调度器。通过配置文件(通常是 `applicationContext.xml`),我们可以设置调度器的属性,例如: ```xml ...

    spring+quartz+maven项目实例

    - `src/main/resources`:存放配置文件,如Spring的`applicationContext.xml`,Quartz的`quartz.properties`等。 - `src/main/java`:存放Java源代码,包括Spring的配置类、业务逻辑类以及Quartz的作业和触发器实现...

    Spring+Quartz 集群

    2. **配置Spring**:创建一个Spring配置文件,声明Quartz相关的bean。这包括`SchedulerFactoryBean`,用于初始化和管理Quartz调度器,以及`JobDetail`和`Trigger`,它们分别定义了任务和触发执行任务的规则。 3. **...

    Spring+Quartz example

    首先,集成Quartz到Spring应用中,我们需要在项目的配置文件中引入Quartz的相关依赖,例如在`pom.xml`或`build.gradle`中添加Quartz库。同时,需要在Spring的配置文件(如`applicationContext.xml`)中配置Scheduler...

    spring+mvc+quartz.rar

    2. 配置Spring:在Spring的配置文件中,定义SchedulerFactoryBean,以初始化Quartz的Scheduler实例。同时,配置JobDetail和Trigger,它们分别表示任务实体和触发器。 3. 创建Job类:自定义Job接口实现类,这是实际...

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

    《Spring任务调度配置详解:Spring+Quartz的整合应用》 在Java开发中,任务调度是不可或缺的一部分,Spring框架提供了与Quartz集成的能力,使得我们可以方便地管理和执行定时任务。本文将详细介绍如何通过Spring和...

    spring+quartz定时集群支持

    总结起来,"Spring+Quartz定时集群支持"涉及到的知识点主要包括:Spring与Quartz的集成、Quartz的集群配置、`MethodInvokingJobDetailFactoryBean`的使用、数据库表的设计以及通过IHS等手段实现的任务调度。...

    Spring mvc + Mybatis + quartz + swagger 定时任务管理[新增、编辑、删除、修改]

    本项目就是基于Spring MVC、Mybatis、Quartz和Swagger实现的一个定时任务管理系统,旨在提供一种灵活且可配置的方式来管理和控制定时任务。下面将详细讲解这个系统的核心组成部分及其工作原理。 首先,Spring MVC是...

    spring 集成quartz 用数据库实现quartz的集群

    在Maven或Gradle的配置文件中,我们需要引入Quartz库以及Spring对Quartz的支持库。这些库将包含所有必要的类和接口,如`Scheduler`, `Job`, `Trigger`等,用于定义和管理定时任务。 接下来,配置Quartz。在Spring的...

    Spring+Quartz配置定时任务实现代码

    Spring+Quartz配置定时任务实现代码 Spring和Quartz是两个非常流行的开源框架,Spring是一个基于Java的企业级应用程序开发框架,而Quartz是一个功能强大且灵活的开源调度框架。两者相结合,可以实现灵活可配置的...

    Spring+quartz相关jar包.rar

    2. 配置 Scheduler:在 Spring 配置文件中,设置 Quartz 的 SchedulerFactoryBean,指定数据库存储(如果需要持久化任务信息)和相关的配置属性。 3. 定义 Job 和 Trigger:创建 Quartz 作业类(Job),实现 org....

    Spring+Quartz定时任务学习文档+实例+jar包

    2. 配置Quartz:在Spring的配置文件中,我们需要定义一个`SchedulerFactoryBean`,这是Quartz调度器的Spring Bean,可以设置相关属性,如线程池大小、是否自动启动等。 ```xml &lt;bean id="scheduler" class="org....

    Spring Boot+Apache Shiro+Spring MVC+MyBatis+Quartz+Druid DEMO

    这是一个基于Spring Boot、Apache Shiro、Spring MVC、MyBatis、Quartz和Druid的数据源管理框架的示例项目,名为"renren-security"。这个DEMO提供了完整的权限管理和任务调度解决方案,下面是这些技术栈的核心知识点...

    spring+quartz使用jar包

    2. **SchedulerFactoryBean**:这是Spring提供的一个工厂bean,用于配置和启动Quartz的Scheduler。你可以通过这个bean设置Quartz的相关配置,比如数据库连接、job存储策略、线程池大小等。 3. **Job和Trigger**:在...

    spring+mybatis+quartz

    在整合这三个技术时,通常会使用Spring的ApplicationContext来加载配置,包含MyBatis的SqlSessionFactory和Mapper接口,以及Quartz的Scheduler实例。MyBatis的配置文件中,会指定数据源、事务管理器以及Mapper文件的...

Global site tag (gtag.js) - Google Analytics