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>
分享到:
相关推荐
虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问...
Spring 4.2.2 集成 Quartz Scheduler 2.2.2 的一个简单的 demo
Quartz 是个开放源码项目,提供了丰富的作业调度集。希望您在阅读完本文并看过代码演示后,可 以把Quartz 的基本特性应用到任何Java™ 应用程序中。
虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问...
使用mysql 可运行的完项目 功能: 定时器运行/停止、 更改运行周期、动态增加定时器。
本资源是一个最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 的一个简单的 demo,也是博客《最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 任务调度示例》的配套示例项目,该博客地址是:...
NULL 博文链接:https://csdxqzp.iteye.com/blog/665290
Spring中集成的一个定时任务调度器,以备以后使用
spring集成quartz实现一个简单的任务调度
TimeTask 与quartz简单用法 Spring中任务调度cronExpression配置说明
NULL 博文链接:https://maoxy.iteye.com/blog/830285
support pkg:扩展Spring与Quartz集成的不足之处。 core pkg: 是自身调度业务的封装 实例运行依赖Oracle数据库,根据quartz框架包docs/dbTables/目录下的sql脚本文件,创建表结构,修改工程中的Spring数据源配置。 ...
集成了分布式任务调度框架 Quartz ,任务存储于数据库。 使用SpringMVC作为路由控制, 集成 Swagger2 提供实时 RESTful API文档。 数据持久层集成 Mybatis 框架。 使用自定义注解 @TargetDataSource 实现了多数据源...
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等...使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。
基于quartz的任务调度插件,引入到spring项目即可使用,依赖于redis的订阅可以对任务立即运行,修改任务自动执行时间/频率,暂停等操作。适合需要定时任务的项目进行快速的集成开发,提高开发效率,降低开发难度。
任务调度框架Quartz与Spring2.0进行整合的例子,Eclipse下调试通过。相应的包请自己下载。
支持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
5、不再使用作业自动调度框架Quartz实现作业调度,使用spring框架自带的调度器进行作业调度,简化了配置; 6、json插件使用阿里的开源fastjson工具,注意低版本的fastjson与swagger不兼容,这里有坑; 7、包含了一个...
training-boot-schedulerspring boot integrate scheduler job 该项目在Spring-Boot基础上整合了调度作业功能,演示了两种功能:注解配置使用配置文件XML这两种配置方式都有优势,如果需求固定,推荐使用注解,注解...