`
gaogengzhi
  • 浏览: 106139 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring与Quartz集成作业调度

阅读更多
        Quartz与Spring集成之后,使用起来很方便。下面对其用法做简单的小结。首先创建实际项目中你想定时执行的Java类,如下面代码:
package com.aostarit.quartz;

public class DoDistribute
{
	//实际项目中需要执行的方法
	public void distributeReg()
	{
		System.out.println("this is a test program!");
	}	
}

        然后在Spring的applicationContext.xml中做简单配置,配置后代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

	<!-- 被执行的作业调度类 -->
	<bean id="DoDistribute" class="com.aostarit.quartz.DoDistribute"></bean>

	<!--用于设定启动时运行的Bean与方法,目标方法需要被自动执行-->
	<bean id="quartzDetail"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 指定的目标bean -->
		<property name="targetObject">
			<ref bean="DoDistribute" />
		</property>
		<!-- 指定目标方法 -->
		<property name="targetMethod">
			<value>distributeReg</value>
		</property>
	</bean>

	<!-- 配置简单触发器 -->
	<bean id="simpleTrigger"
		class="org.springframework.scheduling.quartz.SimpleTriggerBean">
		<!-- 指定触发器关联的作业 -->
		<property name="jobDetail">
			<ref bean="quartzDetail" />
		</property>
		<!-- 延迟时间100s -->
		<property name="startDelay">
			<value>10000</value>
		</property>
		<!-- 每200s启动一次 -->
		<property name="repeatInterval">
			<value>20000</value>
		</property>
	</bean>

	<!-- 配置Cron触发器 -->
	<bean id="cronTrigger"
		class="org.springframework.scheduling.quartz.CronTriggerBean">
		<!-- 指定触发器关联的作业 -->
		<property name="jobDetail">
			<ref bean="quartzDetail" />
		</property>
		<!-- 指定Cron表达式 -->
		<property name="cronExpression">
			<value>* * 0-23 * * ?</value>
		</property>
	</bean>

	<!-- 建立实际调度 -->
	<bean
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<!-- 指定调度使用的触发器列表 -->
		<property name="triggers">
			<list>
				<ref local="cronTrigger" />
				<!-- <ref local="simpleTrigger" /> -->
			</list>
		</property>
	</bean>
</beans>

配置完成后,编写main()函数测试,代码如下:
	public static void main(String args[])
	{
		new FileSystemXmlApplicationContext("webroot/web-inf/applicationContext.xml");
	}

crontrigger触发器简单介绍:
"Cron-Expression"由6到7个用空格分开的字段组成的表达式这6或7个字段必须遵循下面的顺序和格式:
Seconds        0-59              , - * /
Minutes         0-59              ,- * /
Hours          0-23              , - * /
Day-of-month    1-31              , - * ? / L W C
Month         1-12 or JAN-DEC    , - * /
Day-of-Week   1-7 or SUN-SAT     , - * ? / L C #
Year (Optional)  empty, 1970-2099    , - * /

*是一个通配符,表示任何值,用在Minutes字段中表示每分钟。
?只可以用在day-of-month或者Day-of-Week字段中,用来表示不指定特殊的值。
-用来表示一个范围,比如10-12用在Month中表示10到12月。
,用来表示附加的值,比如MON,WED,FRI在day-of-week字段中表示礼拜一和礼拜三和礼拜五。
/用来表示增量,比如0/15用在Minutes字段中表示从0分开始0和15和30和45分。
L 只可以用在day-of-month或者Day-of-Week字段中,如果用在Day-of-month中,表示某个月的最后一天,1月则是表示31 号,2月则表示28号(非闰年),如果用在Day-of-Week中表示礼拜六(数字7);但是如果L与数字组合在一起用在Day-of-month中,比如6L,则表示某个月的最后一个礼拜六;

注意:若想在应用服务器(weblogic、tomcat等)中进行作业调度,需在web.xml文件中加入Spring监听器,完了后当应用服务器(weblogic、tomcat等)启动时,作业调度自动执行。
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
分享到:
评论

相关推荐

    spring-Quartz(作业调度)

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

    Spring 4.2 集成 Quartz2 任务调度示例

    Spring 4.2.2 集成 Quartz Scheduler 2.2.2 的一个简单的 demo

    Spring集成Quartz调度框架.pdf

    Quartz 是个开放源码项目,提供了丰富的作业调度集。希望您在阅读完本文并看过代码演示后,可 以把Quartz 的基本特性应用到任何Java™ 应用程序中。

    spring+quartz 动态任务方案

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

    spring集成quartz 任务调度

    使用mysql 可运行的完项目 功能: 定时器运行/停止、 更改运行周期、动态增加定时器。

    最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 任务调度示例

    本资源是一个最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 的一个简单的 demo,也是博客《最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 任务调度示例》的配套示例项目,该博客地址是:...

    Spring2.x集成Quartz调度框架

    NULL 博文链接:https://csdxqzp.iteye.com/blog/665290

    Spring quartz定时调度jar包

    Spring中集成的一个定时任务调度器,以备以后使用

    spring-quartz

    spring集成quartz实现一个简单的任务调度

    Spring 中任务调度 TimeTask 与quartz简单用法

    TimeTask 与quartz简单用法 Spring中任务调度cronExpression配置说明

    定时调度-Spring集成Quartz

    NULL 博文链接:https://maoxy.iteye.com/blog/830285

    quartz与spring集群Demo

    support pkg:扩展Spring与Quartz集成的不足之处。 core pkg: 是自身调度业务的封装 实例运行依赖Oracle数据库,根据quartz框架包docs/dbTables/目录下的sql脚本文件,创建表结构,修改工程中的Spring数据源配置。 ...

    基于Spring Boot + Quartz 的分布式任务调度系统.zip

    集成了分布式任务调度框架 Quartz ,任务存储于数据库。 使用SpringMVC作为路由控制, 集成 Swagger2 提供实时 RESTful API文档。 数据持久层集成 Mybatis 框架。 使用自定义注解 @TargetDataSource 实现了多数据源...

    Spring集成Quartz定时任务框架介绍.docx

    在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等...使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。

    基于quartz的任务调度插件

    基于quartz的任务调度插件,引入到spring项目即可使用,依赖于redis的订阅可以对任务立即运行,修改任务自动执行时间/频率,暂停等操作。适合需要定时任务的项目进行快速的集成开发,提高开发效率,降低开发难度。

    Quartz与Spring2.0整合Eclipse例程

    任务调度框架Quartz与Spring2.0进行整合的例子,Eclipse下调试通过。相应的包请自己下载。

    springbatch_嵌入式jetty_动态控制的quartz

    支持web接口的批处理框架 ...springmvc4.0.7 springbatch3.0.7 quartz2.2.3 mysql5.6 oracle11g junit4.11 log4j1.2.17 mybatis3.4.1 druid1.0.17 smg3(决策引擎) jetty8.1.5 fastjson1.2.7 springjdbc3.2.14

    Spring+SpringMVC+Mybatis整合实现增删改查功能(适合入门学习也可以做脚手架开发)

    5、不再使用作业自动调度框架Quartz实现作业调度,使用spring框架自带的调度器进行作业调度,简化了配置; 6、json插件使用阿里的开源fastjson工具,注意低版本的fastjson与swagger不兼容,这里有坑; 7、包含了一个...

    training-boot-scheduler:spring boot 集成调度程序作业

    training-boot-schedulerspring boot integrate scheduler job 该项目在Spring-Boot基础上整合了调度作业功能,演示了两种功能:注解配置使用配置文件XML这两种配置方式都有优势,如果需求固定,推荐使用注解,注解...

Global site tag (gtag.js) - Google Analytics