`
确实比较男
  • 浏览: 112398 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

任务调度Quartz和spring整合

阅读更多

前几天使用到了任务调度框架Quartz,并且和spring进行整合使用,现在在这里做下记录:

1. 首先导入Quartz的jar包,可以去官网下载,若是使用maven的话就直接使用maven导入:

 

<dependency>
	<groupId>org.quartz-scheduler</groupId>
		<artifactId>quartz</artifactId>
		<version>1.8.6</version>   <!-- 最新版本是1.8.6 -->
	</dependency>

2. 导入spring的包:

<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context-support</artifactId>
		<version>3.2.4.RELEASE</version>
	</dependency>

3. 接下来就是实现任务类 ,有两种方式:

 

3.1第一种方式:

 

package com.hqhp.quartz;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class JobQuartz extends QuartzJobBean {

	  private int timeout;

	  public JobQuartz(){
	  }
	  /**
	   * Setter called after the ExampleJob is instantiated
	   * with the value from the JobDetailBean (5)
	   */
	  public void setTimeout(int timeout) {
	    this.timeout = timeout;
	  }

	  protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException {
	      // do the actual work
		  System.out.println("quartz test success...."+timeout);
	  }
	}

相应的spring中的配置文件代码:

 

 

<!-- 第一种方式实现JobDetail -->
	<bean name="jobQuartzDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
		<property name="jobClass" value="com.hqhp.quartz.JobQuartz" />
		<property name="Durability" value="true" />
		<property name="jobDataAsMap">
			<map>
				<entry key="timeout" value="5" />
			</map>
		</property>
	</bean>

3.2 第二种方式:

 

 

package com.hqhp.quartz;
public class ExampleBusinessObject {
	 // properties and collaborators
	  public void doIt() {
	    // do the actual work
		  System.out.println("do it ...");
	  }

}

相应的sping的配置文件:

 

 

<!-- 第二种方式实现JobDetail -->
	<bean id="exampleBusinessObject" class="com.hqhp.quartz.ExampleBusinessObject" />
	<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="exampleBusinessObject" />
		<property name="targetMethod" value="doIt" />
	</bean>

4. 开始配置触发器,触发器也有两种方式,和任务类的方式对应:

 

4.1 第一种方式

 

<!-- 触发器的一种方式 -->
	<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
		<!-- see the example of method invoking job above -->
		<property name="jobDetail" ref="jobQuartzDetail" />
		<!-- 5 seconds -->
		<property name="startDelay" value="5000" />
		<!-- repeat every 10 seconds -->
		<property name="repeatInterval" value="10000" />
	</bean>

4.2 第二种方式:

 

 

<!-- 触发器第二种方式 -->
	<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail" ref="jobDetail" />
		<property name="cronExpression" value="0 29 13 * * ?" />   <!-- 每天13:29会执行一次配置的任务 -->
	</bean>

5. 最后就是把触发器加入到任务列表中:

 

 

<bean id='testScheduler' class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="simpleTrigger" />
				<ref bean="cronTrigger" />
			</list>
		</property>
	</bean>


6. 最后说下cronExpression的表达式的参考:
http://www.blogjava.net/javainthink/archive/2006/10/19/76077.html




 

分享到:
评论

相关推荐

    Spring整合任务调度框架Quartz

    Spring整合任务调度框架Quartz,本文档详细介绍了Spring整合任务调度框架Quartz,希望可以帮助学习者

    spring整合quartz定时任务调度

    spring整合quartz定时任务调度..........

    Quartz任务调度器

    Quartz任务调度器与spring整合,做项目的时候常听测试说谁在起着quartz,也不知道是啥,问了下同事,就是定时去执行某些任务的,刚好bug比较少,学习了一下~

    Quartz与Spring2.0整合Eclipse例程

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

    任务调度开源框架Quartz动态添加、修改和删除定时任务

    Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz框架包含了调度器监听、...并且还能和Spring配置整合使用。Quartz在功能上远远超越了JDK自带的Timer,很好很强大!

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

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

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

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

    最新 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 任务调度示例》的配套示例项目,该博客地址是:...

    Spring quartz定时调度jar包

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

    Spring 4.2 集成 Quartz2 任务调度示例

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

    spring+quartz 动态任务方案

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

    spring集成quartz 任务调度

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

    spring-Quartz(作业调度)

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

    基于quartz的任务调度插件

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

    quartz与spring集群Demo

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

    Quartz作业调度器

    QuartZ和Spring进行整合,让你更了解QuartZ作业调度器的用法

    springboot-quartz任务调度

    定时任务执行(任务调度) 框架中集成springboot+quartz 前端 html js layui vue 等 所有功能均已实现

    Spring 3整合Quartz 1.8实现定时任务三:动态暂停 恢复 修改和删除任务

    Spring 3整合Quartz 1.8实现定时任务三:动态暂停 恢复 修改和删除任务 任务保存到数据库,系统启动时读取数据库,页面显示加载,并管理 注:spring3+quartz2动态任务调度,任务保存在内存中,页面显示动态管理版...

    spring boot+vue+quartz2.2.3整合定时调度系统

    spring boot+vue+quartz2.2.3整合定时调度系统持久化道mysql,sql脚本在项目里面。sql文件spring boot+vue+quartz2.2.3整合定时调度系统持久化道mysql

Global site tag (gtag.js) - Google Analytics