前几天使用到了任务调度框架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定时任务调度..........
Quartz任务调度器与spring整合,做项目的时候常听测试说谁在起着quartz,也不知道是啥,问了下同事,就是定时去执行某些任务的,刚好bug比较少,学习了一下~
任务调度框架Quartz与Spring2.0进行整合的例子,Eclipse下调试通过。相应的包请自己下载。
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz框架包含了调度器监听、...并且还能和Spring配置整合使用。Quartz在功能上远远超越了JDK自带的Timer,很好很强大!
集成了分布式任务调度框架 Quartz ,任务存储于数据库。 使用SpringMVC作为路由控制, 集成 Swagger2 提供实时 RESTful API文档。 数据持久层集成 Mybatis 框架。 使用自定义注解 @TargetDataSource 实现了多数据源...
TimeTask 与quartz简单用法 Spring中任务调度cronExpression配置说明
本资源是一个最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 的一个简单的 demo,也是博客《最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 任务调度示例》的配套示例项目,该博客地址是:...
Spring中集成的一个定时任务调度器,以备以后使用
Spring 4.2.2 集成 Quartz Scheduler 2.2.2 的一个简单的 demo
虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问...
使用mysql 可运行的完项目 功能: 定时器运行/停止、 更改运行周期、动态增加定时器。
虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问...
基于quartz的任务调度插件,引入到spring项目即可使用,依赖于redis的订阅可以对任务立即运行,修改任务自动执行时间/频率,暂停等操作。适合需要定时任务的项目进行快速的集成开发,提高开发效率,降低开发难度。
support pkg:扩展Spring与Quartz集成的不足之处。 core pkg: 是自身调度业务的封装 实例运行依赖Oracle数据库,根据quartz框架包docs/dbTables/目录下的sql脚本文件,创建表结构,修改工程中的Spring数据源配置。 ...
QuartZ和Spring进行整合,让你更了解QuartZ作业调度器的用法
定时任务执行(任务调度) 框架中集成springboot+quartz 前端 html js layui vue 等 所有功能均已实现
Spring 3整合Quartz 1.8实现定时任务三:动态暂停 恢复 修改和删除任务 任务保存到数据库,系统启动时读取数据库,页面显示加载,并管理 注:spring3+quartz2动态任务调度,任务保存在内存中,页面显示动态管理版...
spring boot+vue+quartz2.2.3整合定时调度系统持久化道mysql,sql脚本在项目里面。sql文件spring boot+vue+quartz2.2.3整合定时调度系统持久化道mysql