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

Quartz用法笔记

阅读更多
1,首先定义创建定时任务类MainTask.java
package com.lwh.action;
public class MainTask {
	public void execute(){
		System.out.println("Hello");
	}
}

2,注册定时任务类,并配置任务计划和任务调度器,首先新建一个TimerConfig.xml并放在WEB-INF文件夹下。
<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
	<!-- 注册定时执行实体 -->
	<bean id="mainTask" class="com.lwh.action.MainTask"/>
	
	<!-- 注册定时器信息 -->
	<bean id="mainJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 指定 要执行的定时任务类 -->
		<property name="targetObject">
			<ref bean="mainTask"/>
		</property>
		<!-- 指定执行任务的方法名称-->
		<property name="targetMethod">
			<value>execute</value>
		</property>
	</bean>
	<bean id="timeTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<!-- 声明要运行的实体 -->
		<property name="jobDetail">
			<ref bean="mainJob"/>
		</property>
		<!-- 设置要运行的时间 -->
		<property name="cronExpression">
			<!-- 在每天上午1点到下午1:30期间的每1分钟触发  -->
			<value>0 0-30 1 ? * SAT</value>
		</property>
	</bean>
	<!-- 注册定时器 -->
	<bean id="sfb" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<!-- 注入定时器实体 -->
		<property name="triggers">
			<list>
				<ref local="timeTrigger"/>
			</list>
		</property>
	</bean>
</beans>

3,在Web应用中启动定时服务。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/TimerConfig.xml</param-value>
 </context-param>
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
</web-app>


另外:需要用到的包如:spring.jar,commons-collections.jar
commons-logging.jar,jta.jar,quartz-1.6.0.jar等等。

附:cronExpression配置说明

字段   允许值   允许的特殊字符
秒    0-59    , - * /
分    0-59    , - * /
小时    0-23    , - * /
日期    1-31    , - * ? / L W C
月份    1-12 或者 JAN-DEC    , - * /
星期    1-7 或者 SUN-SAT    , - * ? / L C #
年(可选)    留空, 1970-2099    , - * /


这里特殊字符说明:

1.逗号[,]的作用,用于分隔字符,如秒1,10,59 这是在1秒、10秒、59秒时触发。

2.横线[-]的作用,用于表示多少至多少,如秒1-20 这是在1到20之间每秒都触发。

3.星号
  • 的作用,用于表示忽略本项,如秒* 这样在整个表达式中将不把秒做为条件。

  • 4.斜线[/]的作用,用于表示倍数累加,如秒5/15 这是在5,20,35,50时触发。

    5.问号[?],只能用在日期和星期,因为两者之间有一个相同性,例如星期一,在日期表达中是20号,这样在进行cron计算时会有问题,因此可以使用?号,把其中的一个屏蔽掉。例如 * * * ? * 1 表示为每星一触发。

    表达式 意义
    "0 0 12 * * ?" 每天中午12点触发
    "0 15 10 ? * *" 每天上午10:15触发
    "0 15 10 * * ?" 每天上午10:15触发
    "0 15 10 * * ? *" 每天上午10:15触发
    "0 15 10 * * ? 2005" 2005年的每天上午10:15触发
    "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
    "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
    "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
    "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
    "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
    "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
    "0 15 10 15 * ?" 每月15日上午10:15触发
    "0 15 10 L * ?" 每月最后一日的上午10:15触发
    "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发

    分享到:
    评论
    1 楼 萧紫飞飞 2014-10-09  
    不错

    相关推荐

      Quartz学习笔记

      这个学习笔记将深入探讨Quartz的核心概念、主要功能以及如何在实际项目中使用它。 首先,我们要理解Quartz的基本架构。Quartz的核心组件包括Scheduler、Job、Trigger和Calendar。Scheduler是调度器,负责管理所有的...

      Quartz入门学习(真丶入门)

      通过深入阅读这些资料,你可以更全面地了解Quartz的功能和用法,进一步提升你的定时任务管理能力。 总的来说,Quartz提供了一套强大的定时任务管理框架,而结合Spring可以更好地融入到现有的应用架构中,简化任务的...

      Spring调度器Quartz笔记

      an"/&gt; &lt;/property&gt; &lt;!-- 设置Cron表达式,例如:每天凌晨1点执行,格式为:秒 分 时 日 月 周,如0 0 1 * * ?...通过理解并熟练掌握这些基本概念和用法,你可以有效地利用 Quartz 来优化和自动化你的业务流程。

      quartz教程 quartz学习手册 quartz帮助手册

      2. **定义Job**:创建Job类实现`org.quartz.Job`接口,并重写`execute(JobExecutionContext context)`方法。 3. **创建JobDetail**:配置Job的属性,如Job类、名字、组名等。 4. **创建Trigger**:根据需求创建合适...

      springboot+quartz多任务

      接着,定义Job类,这个类需要实现`org.quartz.Job`接口,并重写`execute(JobExecutionContext context)`方法,这里编写实际的任务执行逻辑。Spring的@Component注解可以使其成为Spring管理的bean,这样Quartz就能...

      springboot-quartz:springboot整合quartz

      本篇文章将详细介绍如何在SpringBoot项目中集成Quartz,以及如何配置和使用它。 首先,我们需要在项目中引入Quartz相关的依赖。在Maven项目中,可以在`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;org.spring...

      spring2.0学习笔记+spring定时任务

      标题中的“spring2.0学习笔记+spring定时任务”表明了这个压缩包文件包含的是关于Spring框架2.0版本的学习资料,特别是关于Spring的定时任务功能。Spring是Java开发中最广泛应用的轻量级框架之一,它提供了一整套...

      学习笔记 MHT2

      9. **call函数**:《javaScript 中 call 函数的用法说明.mht》讲述了call方法如何改变函数调用时的上下文(this值),以及如何借用其他对象的方法,是理解JavaScript面向对象编程的重要概念。 10. **单例模式**:...

      个人整理超精密的iOS笔记.pdf

      - **在 Quartz 中如何设置旋转点**: 通过设置 `CGContextTranslateCTM` 和 `CGContextRotateCTM` 方法来实现旋转点的设置。 #### 12. 媒体播放 - **iPhone 游戏中既播放背景音乐又播放特效声音**: 使用 `...

      SpringBoot 学习笔记完整教程

      本教程将全面介绍SpringBoot的核心特性,并通过实例深入解析其使用方法。 1. SpringBoot基础 - SpringBoot的核心概念:起步依赖(Starters)、自动配置(Auto-configuration)和嵌入式服务器。 - 创建第一个...

      objective-c学习笔记

      学习笔记中可能包含了一些关于Objective-C图形编程的内容,如Core Graphics或Quartz 2D,它们是苹果平台进行低级绘图的API,可用于创建自定义视图和复杂的图形。 六、实践应用 理论学习后,通过编写简单的iOS应用...

      C#打开笔记本摄像头

      另一种方法是使用Windows API,如DirectShow,它提供了一个用于多媒体设备,包括摄像头的框架。在C#中,可以使用P/Invoke技术调用这些API函数。但是,这种方法较为复杂,需要对DirectShow有深入理解。 如果你选择...

      directshow_SDK开发笔记.

      这个“Directshow_SDK开发笔记”很可能是开发者在研究DirectShow SDK过程中整理的一份详细文档,涵盖了DirectShow的核心概念、API使用、滤镜图形构建以及实际开发中的技巧和问题解决方案。 在DirectShow中,最重要...

      spring第一天课堂笔记

      5. **方便集成各种优秀框架**:Spring提供了对多个第三方框架(如Struts、Hibernate、Hessian、Quartz等)的直接支持,降低了这些框架的使用门槛。 6. **降低Java EE API的使用难度**:Spring对Java EE API进行了...

      spring+ajax+mybatis+springmvc笔记

      ### Spring+Ajax+MyBatis+SpringMVC 笔记 #### 1. Spring框架概述 **Spring** 是一个开源的、轻量级的应用开发框架,它主要关注于简化企业级应用开发。Spring 旨在通过以下几点来实现这一目标: - **简化开发**:...

      8定时任务+数据源学习笔记1

      在Spring Boot中使用Quartz,需要添加相关依赖,并创建Quartz配置以及Job类: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-quartz ``` 在配置类中配置Quartz: ```java...

      无线互联IOS笔记

      ### 无线互联IOS笔记知识点详解 #### 一、iOS操作系统概览 - **核心设备**:iOS操作系统作为苹果公司的核心产品之一,专为iPhone、iPod touch...此外,掌握XIB文件的使用方法有助于快速构建用户界面,提高开发效率。

      Spring Boot 学习笔记完整教程new

      7. **整合JPA保存数据**:使用@Entity、@Repository、@Service和@Controller等注解,配合JPA的save()、find()等方法,可以实现对数据库的CRUD操作。 8. **使用JdbcTemplate**:JdbcTemplate是Spring提供的一个简单...

      springboot_笔记

      它集成了大量常用的第三方库配置,如Redis、MongoDB、JPA、RabbitMQ、Quartz等,只需少量甚至零配置就能快速启动服务。此外,Spring Boot还内置了Tomcat服务器,使得应用可以直接运行,无需额外部署。 ## 四、...

    Global site tag (gtag.js) - Google Analytics