spring定时器实现方式2:OpenSymphony的Quartz
1.首先向工程中引入jar包:quartz-1.5.1.jar
2.编写处理业务类
package com.tgwoo.ctspmt.test;
import java.text.SimpleDateFormat;
import java.util.Date;
public class EmailReport {
public void courseService(){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date) + "{*****EmailReport类,处理业务方法courseService运行一次*****}");
//处理相关业务
}
}
(如下配置到applicationContext.xml中)
3.配置需要运行的类
<bean id="classEmailReport" class="com.tgwoo.ctspmt.test.EmailReport"></bean>
4.配置定时器job需要加载的类和方法
<bean id="jobDetailEmailReport" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="classEmailReport"></property>
<property name="targetMethod" value="courseService"></property>
</bean>
5.Quartz的org.quartz.Trigger类描述了何时及以怎样的频度运行一个Quartz工作。
<bean id="cronTriggerBeanEmailReport" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetailEmailReport"></property>
<property name="cronExpression"><value>0/15 * * * * ?</value></property>
</bean>
注:属性cronExpression告诉何时触发
最神秘就是cron表达式:
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。从左到右:
1.秒 2.分 3.小时 4.月份中的日期(1-31) 5.月份(1-12或JAN-DEC) 6.星期中的日期(1-7或SUN-SAT)7.年份(1970-2099)
每个元素都显示的规定一个值(如6),一个区间(9-12),一个列表(9,11,13)或一个通配符(*)。
通过设置一个问号(?)来表明不想设置的那个字段,“/”如果值组合就表示重复次数(10/6表示每10秒重复6次)。
具体时间设定可参考
"0/10 * * * * ?" 每10秒触发
"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触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
6.启动Spring定时器
<bean id="scheduleEmailReportFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list><ref bean="cronTriggerBeanEmailReport" /></list>
</property>
</bean>
7.启动tomcat6服务后,Timer运行正常(服务启动后运行定时器,周期为15秒)
..........
..........
2011-12-22 11:10:19 org.apache.catalina.startup.Catalina start
信息: Server startup in 6948 ms
2011-12-22 11:10:30{*****EmailReport类,处理业务方法courseService运行一次*****}
2011-12-22 11:10:45{*****EmailReport类,处理业务方法courseService运行一次*****}
2011-12-22 11:11:00{*****EmailReport类,处理业务方法courseService运行一次*****}
2011-12-22 11:11:15{*****EmailReport类,处理业务方法courseService运行一次*****}
..........
..........
分享到:
相关推荐
Spring两种定时器实例配置:Java的TimerTask类和OpenSymphony的Quartz。包含5种配置方式:timer普通定时器、timer特定方法定时器、quartz简单定时器、quartz精确定时器、quartz特定方法定时器。简单实用,一看就会。
Spring框架提供了两种方式来处理定时任务:Java内置的`Timer`类和第三方库OpenSymphony的Quartz。下面将详细介绍这两种实现方式。 ### 1. Java `Timer` 类 Java `java.util.Timer` 类是Java标准库中的一个轻量级...
#### 一、Spring定时器的两种实现方式概述 在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨...
JavaWeb Spring中的OpenSymphony Quartz是一个强大的定时任务框架,它为开发者提供了高度灵活的定时调度功能,能够实现复杂的定时任务管理。Quartz是基于Java的,因此它与Spring框架的集成非常自然,使得在JavaWeb...
在Java的Spring框架中,定时任务的实现有多种方式,其中两种常见的实现是基于Java的`Timer`类和OpenSymphony的`Quartz`库。这两种定时器在Spring中的使用和配置有所不同,各有优缺点,适合不同的应用场景。 1. **...
Quartz是由OpenSymphony开源组织开发的一款开源的作业调度框架,它提供了丰富的API,使得开发者能够方便地创建、管理和执行定时任务。Quartz支持多种触发器类型,如SimpleTrigger、CronTrigger等,可以满足不同类型...
Quartz是一款由OpenSymphony组织提供的开源作业调度框架,它提供了强大的触发机制用于定义作业何时运行,并且可以将作业绑定到Spring容器中的bean,这意味着开发者可以在作业执行过程中调用Spring管理的组件,实现...
对应Maven信息:groupId:org.opensymphony.quartz,artifactId:quartz,version:1.6.1 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
Quartz定时器是一个开源的作业调度框架,专为J2SE和J2EE应用程序设计,完全用Java编写。它的核心优势在于提供强大的灵活性和简单性,使得开发者可以轻松创建简单的或复杂的任务调度。Quartz支持多种特性,如数据库...
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的...
对应Maven信息:groupId:org.opensymphony.quartz,artifactId:quartz,version:1.6.1 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
文件里面包括 1:Quartz开发指南.pdf 2:Quartz从入门到进阶.pdf 3:QuartzBeginnerExample一个附带的工程例子 4:quartz-1.6.1.zip Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它...
<property name="configLocation" value="classpath:quartz.properties"/> ``` 同时,我们还需要一个quartz.properties文件,配置Quartz的详细参数,如数据库连接、jobStore类型等。 然后,定义Job类。在...
在本文中,我们将深入探讨如何实现Struts2与Spring的集成,以及利用拦截器来增强应用的功能。 首先,Struts2 是一个基于MVC设计模式的开源Web框架,它提供了强大的控制器层,使得开发者可以更方便地处理HTTP请求和...
quartz-1.6.2最新包,Quartz 是什么,大概不需多加说明,简单讲就是一个纯 Java 实现的作业调度工具,相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细。
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成...
- **监控和管理**:Quartz提供了多种工具和API用于监控和管理任务调度,包括查看任务状态、暂停或恢复任务、删除任务等。 在实际应用中,Quartz集群能够很好地处理大规模、复杂的定时任务场景,减少了自定义实现的...
Quartz是OpenSymphony开源组织开发的一款任务调度框架,它支持CRON表达式、简单触发器和复合触发器等多种任务调度方式。Quartz可以方便地与JDBC存储机制配合,持久化任务调度信息,确保服务重启后任务仍能按照预定...