<?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配置实例(转载)" 暗示了我们将讨论如何在Java环境中整合Spring框架与Quartz作业调度库的使用。Quartz是一个开源的作业调度库,它允许开发者安排任务以在特定时间执行,而Spring框架则是一个...
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+mybatis+quartz动态定时任务创建"就是一个常见的技术栈,用于实现这样的目标。这个组合充分利用了各组件的优势,提供了强大的后端服务支持...
java + quartz实现定时任务,实现集群配置,在集群环境下多节点运行定时Quartz定任务,就会存在重复处理任务的现象,为解决这一问题,下面我将介绍使用 Quartz 的 TASK ( 12 张表)实例化到数据库,基于数据库自动...
2. **配置Quartz**:在Spring的配置文件(如applicationContext.xml)中,定义Quartz的相关bean,包括SchedulerFactoryBean、JobDetail和Trigger。这些配置会告诉Quartz如何启动、何时运行以及运行哪些任务。 3. **...
在 Spring 的配置文件(如 `applicationContext.xml`)中,我们需要引入 Quartz 的配置,并声明一个 `SchedulerFactoryBean` 来实例化和配置 Quartz Scheduler。这通常包括定义数据源、JobDetail 和 Trigger。 2. ...
在 Spring 中配置 Quartz 需要定义一个 `SchedulerFactoryBean`,它负责创建和管理 Quartz 的调度器。通过配置文件(通常是 `applicationContext.xml`),我们可以设置调度器的属性,例如: ```xml ...
- `src/main/resources`:存放配置文件,如Spring的`applicationContext.xml`,Quartz的`quartz.properties`等。 - `src/main/java`:存放Java源代码,包括Spring的配置类、业务逻辑类以及Quartz的作业和触发器实现...
2. **配置Spring**:创建一个Spring配置文件,声明Quartz相关的bean。这包括`SchedulerFactoryBean`,用于初始化和管理Quartz调度器,以及`JobDetail`和`Trigger`,它们分别定义了任务和触发执行任务的规则。 3. **...
首先,集成Quartz到Spring应用中,我们需要在项目的配置文件中引入Quartz的相关依赖,例如在`pom.xml`或`build.gradle`中添加Quartz库。同时,需要在Spring的配置文件(如`applicationContext.xml`)中配置Scheduler...
2. 配置Spring:在Spring的配置文件中,定义SchedulerFactoryBean,以初始化Quartz的Scheduler实例。同时,配置JobDetail和Trigger,它们分别表示任务实体和触发器。 3. 创建Job类:自定义Job接口实现类,这是实际...
《Spring任务调度配置详解:Spring+Quartz的整合应用》 在Java开发中,任务调度是不可或缺的一部分,Spring框架提供了与Quartz集成的能力,使得我们可以方便地管理和执行定时任务。本文将详细介绍如何通过Spring和...
总结起来,"Spring+Quartz定时集群支持"涉及到的知识点主要包括:Spring与Quartz的集成、Quartz的集群配置、`MethodInvokingJobDetailFactoryBean`的使用、数据库表的设计以及通过IHS等手段实现的任务调度。...
本项目就是基于Spring MVC、Mybatis、Quartz和Swagger实现的一个定时任务管理系统,旨在提供一种灵活且可配置的方式来管理和控制定时任务。下面将详细讲解这个系统的核心组成部分及其工作原理。 首先,Spring MVC是...
在Maven或Gradle的配置文件中,我们需要引入Quartz库以及Spring对Quartz的支持库。这些库将包含所有必要的类和接口,如`Scheduler`, `Job`, `Trigger`等,用于定义和管理定时任务。 接下来,配置Quartz。在Spring的...
Spring+Quartz配置定时任务实现代码 Spring和Quartz是两个非常流行的开源框架,Spring是一个基于Java的企业级应用程序开发框架,而Quartz是一个功能强大且灵活的开源调度框架。两者相结合,可以实现灵活可配置的...
2. 配置 Scheduler:在 Spring 配置文件中,设置 Quartz 的 SchedulerFactoryBean,指定数据库存储(如果需要持久化任务信息)和相关的配置属性。 3. 定义 Job 和 Trigger:创建 Quartz 作业类(Job),实现 org....
2. 配置Quartz:在Spring的配置文件中,我们需要定义一个`SchedulerFactoryBean`,这是Quartz调度器的Spring Bean,可以设置相关属性,如线程池大小、是否自动启动等。 ```xml <bean id="scheduler" class="org....
这是一个基于Spring Boot、Apache Shiro、Spring MVC、MyBatis、Quartz和Druid的数据源管理框架的示例项目,名为"renren-security"。这个DEMO提供了完整的权限管理和任务调度解决方案,下面是这些技术栈的核心知识点...
2. **SchedulerFactoryBean**:这是Spring提供的一个工厂bean,用于配置和启动Quartz的Scheduler。你可以通过这个bean设置Quartz的相关配置,比如数据库连接、job存储策略、线程池大小等。 3. **Job和Trigger**:在...
在整合这三个技术时,通常会使用Spring的ApplicationContext来加载配置,包含MyBatis的SqlSessionFactory和Mapper接口,以及Quartz的Scheduler实例。MyBatis的配置文件中,会指定数据源、事务管理器以及Mapper文件的...