`
LiYunpeng
  • 浏览: 952270 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Spring+Quartz实现任务调度 定时执行

阅读更多
直接入题 个人记录

环境是Spring 3.1 Quartz是1.8.6

这里需要注意的一点是,在我下载Quartz的时候,我去官网下载了最新版本2.1.x,但是会报错,通过Google查询了一下,说必须降级到1.8.x的版本。具体原因就不知道为什么了
错误如下
java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class


另外使用Quartz,会依赖于slf4j的包



<!--要调度的对象-->  
	<bean id="queryService" class="com.sanrenxing.services.QueryService" />
	
	<!--定义定时执行queryPService这个bean中的queryFunction()方法-->  
	<bean id="queryQuarz"	class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
		<property name="targetObject">
			<ref bean="queryPService" />
		</property>
		<property name="targetMethod">
			<value>queryFunction</value>
		</property>
	</bean>
	
	<!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。
	这里我们定义了要触发的jobDetail是queryQuarz,即触发器去触发哪个bean..
	并且我们还定义了触发的时间:每天 每小时的0分和30分执行-->  
	<bean id="timerQueryTrigger"  
		class="org.springframework.scheduling.quartz.CronTriggerBean">  
		<property name="jobDetail">  
			<ref bean="queryQuarz" />  
		</property>  
		<property name="cronExpression">  
			<!-- 关键在配置此表达式 -->  
			<value>0 0/30 * * * ?</value>  
		</property>  
	</bean>
	
	<!--管理触发器的总设置,管理我们的触发器列表,可以在bean的list中放置多个触发器。   
	-->  
	<bean autowire="no"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">  
			<list>
				<ref local="timerQueryTrigger" />  
			</list>
		</property>
	</bean>





使用CronTrigger
参考于 http://blog.csdn.net/a416090287/article/details/7423640

CronTrigger 能够提供比 SimpleTrigger 更有具体实际意义的调度方案,调度规则基于 Cron 表达式,CronTrigger 支持日历相关的重复时间间隔(比如每月第一个周一执行),而不是简单的周期时间间隔。因此,相对于SimpleTrigger而 言,CronTrigger在使用上也要复杂一些。
Cron表达式

Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成,如表1所示:

Cron表达式时间字段




Cron表达式的时间字段除允许设置数值外,还可使用一些特殊的字符,提供列表、范围、通配符等功能,细说如下:

●星号(*):可用在所有字段中,表示对应时间域的每一个时刻,例如,*在分钟字段时,表示“每分钟”;

●问号(?):该字符只在日期和星期字段中使用,它通常指定为“无意义的值”,相当于点位符;

●减号(-):表达一个范围,如在小时字段中使用“10-12”,则表示从10到12点,即10,11,12;

●逗号(,):表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五;

●斜杠(/):x/y表达一个等步长序列,x为起始值,y为增量步长值。如在分钟字段中使用0/15,则表示为0,15,30和45秒,而5/15在分钟字段中表示5,20,35,50,你也可以使用*/y,它等同于0/y;

●L:该字符只在日期和星期字段中使用,代表“Last”的意思,但它在两个字段中意思不同。L在日期字段中,表示这个月 份的最后一天,如一月的31号,非闰年二月的28号;如果L用在星期中,则表示星期六,等同于7。但是,如果L出现在星期字段里,而且在前面有一个数值 X,则表示“这个月的最后X天”,例如,6L表示该月的最后星期五;

●W:该字符只能出现在日期字段里,是对前导日期的修饰,表示离该日期最近的工作日。例如15W表示离该月15号最近的工 作日,如果该月15号是星期六,则匹配14号星期五;如果15日是星期日,则匹配16号星期一;如果15号是星期二,那结果就是15号星期二。但必须注意 关联的匹配日期不能够跨月,如你指定1W,如果1号是星期六,结果匹配的是3号星期一,而非上个月最后的那天。W字符串只能指定单一日期,而不能指定日期 范围;

●LW组合:在日期字段可以组合使用LW,它的意思是当月的最后一个工作日;

●井号(#):该字符只能在星期字段中使用,表示当月某个工作日。如6#3表示当月的第三个星期五(6表示星期五,#3表示当前的第三个),而4#5表示当月的第五个星期三,假设当月没有第五个星期三,忽略不触发;

● C:该字符只在日期和星期字段中使用,代表“Calendar”的意思。它的意思是计划所关联的日期,如果日期没有被关联,则相当于日历中所有日期。例如5C在日期字段中就相当于日历5日以后的第一天。1C在星期字段中相当于星期日后的第一天。

Cron表达式对特殊字符的大小写不敏感,对代表星期的缩写英文大小写也不敏感。
  • 大小: 8.2 KB
分享到:
评论

相关推荐

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

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

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

    Spring框架和Quartz是两个广泛使用的工具,它们可以协同工作以实现复杂和灵活的任务调度。本篇文章将深入探讨如何使用Spring与Quartz结合来创建一个任务调度的小例子。 首先,Spring是一个开源的Java企业级应用开发...

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

    Quartz是Java领域广泛使用的定时任务库,它支持复杂的调度策略,如周期性执行、一次性任务等。在这个系统中,Quartz作为核心的定时任务引擎,允许管理员动态创建、编辑、删除和修改定时任务。所有的任务配置信息,...

    spring+quartz定时小例子

    Quartz 是一个开源的作业调度框架,能够实现定时任务的管理和执行。 在 "spring+quartz定时小例子" 中,我们主要关注的是如何将这两个框架结合使用,创建一个可以执行定时任务的应用。这个例子包含了相关的框架包和...

    spring+quartz实现动态设置定时任务

    1. **配置Quartz**:首先,在Spring配置文件中,我们需要声明一个`SchedulerFactoryBean`,这是Spring对Quartz的包装,用于启动和管理Quartz调度器。同时,我们需要配置数据源,因为Quartz可以将任务和触发器存储在...

    定时框架spring+quartz

    Spring框架是Java领域最流行的应用框架之一,而Quartz则是广受欢迎的定时任务调度库。"定时框架spring+quartz"的结合,就是将Quartz的定时功能与Spring的强大集成能力完美融合,为开发者提供了一种高效、灵活的定时...

    Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查

    首先,Quartz是一个开源的作业调度框架,它允许开发者创建、安排和执行定时任务。Quartz支持从数据库存储作业和触发器,这样可以方便地进行任务的持久化和集群环境下的任务同步。 1. **Spring与Quartz的集成**:...

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

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

    spring+quartz任务调度代码版

    通过对这些文件的深入学习和理解,你可以掌握如何在Spring环境中配置和使用Quartz进行任务调度,这对于构建有定时任务需求的应用程序非常有帮助。这个项目提供了实践经验,有助于开发者提升在企业级应用开发中的技能...

    基于SSM+quartz的定时任务管理demo

    本Demo以"基于SSM+quartz的定时任务管理"为主题,将展示如何在Spring、SpringMVC和MyBatis(SSM)框架基础上,集成Quartz作为调度引擎,实现高效灵活的定时任务管理。 **1. SSM框架简介** SSM是Spring、SpringMVC...

    spring+quartz 动态任务方案

    Quartz 则是一款强大的作业调度框架,它允许开发者在 Java 应用中实现定时任务的调度功能。通过将两者结合使用,可以更好地管理定时任务,并充分利用 Spring 的特性。 #### 二、Spring与Quartz的整合概述 整合 ...

    Spring+Quartz定时调度

    在Java世界中,实现定时任务调度是非常常见的需求,Spring框架结合Quartz库提供了一种高效且灵活的解决方案。本文将深入探讨Spring与Quartz的整合,以及如何利用它们来创建和管理定时任务。 ### 一、Spring与Quartz...

    spring+quartz实现定时任务动态管理

    我们可以通过编写实现`org.springframework.scheduling.quartz.JobDetailBean`的类来定义一个任务,然后通过`org.springframework.scheduling.quartz.CronTriggerBean`或`org.springframework.scheduling.quartz....

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

    Spring和Quartz是Java开发中常用的两个框架,它们在企业级应用中被广泛用于实现定时任务的管理和执行。Spring提供了一个轻量级的容器来管理Bean,而Quartz则是一个强大的作业调度库,能够帮助开发者定义和执行定时...

    spring3.0+quartz-1.6.0定时

    总结起来,"spring3.0+quartz-1.6.0定时"的实现涉及到Spring框架的定时任务支持和Quartz库的结合使用,通过Spring的配置管理Quartz调度器,定义任务和触发器,最后编写具体任务逻辑的Java类。这种组合在实际项目中...

    Spring+Quartz example

    这篇描述提到了一个Spring+Quartz的示例项目,它展示了如何在Spring应用中集成Quartz来实现定时任务。通过提供的博客链接(http://blog.csdn.net/u010397369/article/details/17465649),我们可以了解到具体的操作...

    spring整合quartz定时任务调度

    Spring框架作为Java领域广泛使用的轻量级框架,提供了与第三方库Quartz的整合,使得开发者能够轻松地在Spring应用中实现复杂的定时任务调度。Quartz是一款开源的作业调度框架,支持丰富的调度策略,可以满足各种定时...

    spring+quartz定时任务

    Spring与Quartz的集成主要基于Spring的`TaskExecution`和`TaskScheduling`模块,它允许我们以声明式的方式配置定时任务,同时也支持编程式的任务调度。以下将详细介绍如何利用Spring和Quartz实现多任务的定时功能。 ...

    spring+mvc+quartz.rar

    本教程将详细讲解如何利用Spring 4.3.15、Spring MVC 4.3.15和Quartz 2.2,构建一个可管理的定时任务系统,包括任务的暂停、启动、立即执行和重新调度等功能。 一、Spring MVC与Quartz简介 1. Spring MVC:是...

    spring+quartz demo

    在这个 "spring+quartz demo" 中,我们可以学习到如何将这两个框架整合起来,实现定时任务的自动化执行。以下是一些关键知识点: 1. **Spring 配置 Quartz**: 在 Spring 的配置文件(如 `applicationContext.xml`...

Global site tag (gtag.js) - Google Analytics