- 浏览: 234158 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
test_lockxxx:
mythal 写道不好意思,StringUtils.split ...
String.split()和StringTokenizer和indexOf()的比较 -
grantbb:
受用,支持!
Javamail 发送附件中文名乱码问题解决 -
kensunhu:
for(File attach:attachments){
...
Javamail 发送附件中文名乱码问题解决 -
Ben.Sin:
liupeng_10408 写道博主,你好!我开发的是andr ...
Javamail读取邮件列表出现OutOfMemery -
liupeng_10408:
博主,你好!我开发的是android版邮件系统。
只写了如下几 ...
Javamail读取邮件列表出现OutOfMemery
【原文】http://nighthun.itpub.net/post/1974/460376
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:
首先我们来写一个被调度的类:
{
public void work()
{
System.out.println( " Quartz的任务调度!!! " );
}
}
Spring的配置文件:
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
< beans >
<!-- 要调用的工作类 -->
< bean id ="quartzJob" class ="com.kay.quartz.QuartzJob" ></ bean >
<!-- 定义调用对象和调用对象的方法 -->
< bean id ="jobtask" class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
<!-- 调用的类 -->
< property name ="targetObject" >
< ref bean ="quartzJob" />
</ property >
<!-- 调用类中的方法 -->
< property name ="targetMethod" >
< value > work </ value >
</ property >
</ bean >
<!-- 定义触发时间 -->
< bean id ="doTime" class ="org.springframework.scheduling.quartz.CronTriggerBean" >
< property name ="jobDetail" >
< ref bean ="jobtask" />
</ property >
<!-- cron表达式 -->
< property name ="cronExpression" >
< value > 10,15,20,25,30,35,40,45,50,55 * * * * ? </ value >
</ property >
</ bean >
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
< bean id ="startQuertz" lazy-init ="false" autowire ="no" class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
< property name ="triggers" >
< list >
< ref bean ="doTime" />
</ list >
</ property >
</ bean >
</ beans >
测试程序:
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest
{
/**
* @param args
*/
public static void main(String[] args)
{
System.out.println( " Test start . " );
ApplicationContext context = new ClassPathXmlApplicationContext( " quartz-config.xml " );
// 如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
// context.getBean("startQuertz"); System.out.print( " Test end .. " );
}
}
我们需要把log4j的配置文件放入src目录下,启动main类就可以了。
关于cron表达式(来自网络):
Cron 表达式包括以下 7 个字段:
- 秒
- 分
- 小时
- 月内日期
- 月
- 周内日期
- 年(可选字段)
Cron 触发器利用一系列特殊字符,如下所示:
- 反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。
- 问号(?)字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入“?”,表示周内日期值无关紧要。字母 L 字符是 last
的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果“L”单独存在,就等于“7”,否则代表当月内周内日期的最后一个实例。所以“0L”表示安排在当月的最后一个星期日执行。
- 在月内日期字段中的字母(W)字符把执行安排在最靠近指定值的工作日。把“1W”放在月内日期字段中,表示把执行安排在当月的第一个工作日内。
- 井号(#)字符为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。
- 星号(*)字符是通配字符,表示该字段可以接受任何可能的值。
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /
表达式意义
"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点
0 6 * * *
每两个小时
0 */2 * * *
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * *
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3
1月1日早上4点
0 4 1 1 *
发表评论
-
【转】Java Out of Memory 分析
2013-08-02 00:55 938一、内存溢出类型 ... -
Spring3 MVC REST + JPA2 (Hibernate 3.6.1) 构建投票系统 - 3. JPA2(Hibernate实现)
2011-03-29 00:56 1801上一篇介绍了如何使用Spring MVC搭建REST的web应 ... -
Spring3 MVC REST + JPA2 (Hibernate 3.6.1) 构建投票系统 - 2.Spring MVC REST
2011-03-27 00:03 3227前言 :本文只阐述如何使用Spring MVC做REST应用 ... -
传说中的投票系统
2011-03-15 02:35 0传说中的投票系统 -
Spring3 MVC REST + JPA2 (Hibernate 3.6.1) 构建投票系统 - 1.序
2011-03-14 21:37 2672屈指算算,做J2EE开发已经有超过5个年头有多了,技术的东西跟 ... -
If..else, Map, Enum查询速度对比
2011-03-04 23:27 1624习惯每天逛一下论坛,今天发现一个关于重构的帖子 http:/ ... -
[转]Java虚拟机(JVM)参数配置说明
2010-09-16 22:54 1109Java虚拟机(JVM)参数配置说明 在J ... -
使用StringBuffer和StringBuilder代替String的+运算
2010-05-05 16:14 1264使用StringBuffer和StringBuilder代替S ... -
String.split()和StringTokenizer和indexOf()的比较
2010-05-05 15:52 6214将字符串按照一定的规 ... -
【转】Java中的UDP协议编程
2010-03-04 00:38 1735一. UDP协议定义 UDP ... -
iBatis异常There is no statement named update in this SqlMap.
2009-10-26 09:39 4550最近使用iBatis搭建项目架构的时候遇到了一个异常,如下文所 ... -
Spring配置iBatis多个SqlMapConfig.xml
2009-10-23 15:42 4171Spring粘合iBatis的时候需要配置iBatis的Sql ... -
Javamail在解析附件是抛出Missing start boundary异常
2009-09-04 17:45 9608在做javamail通过pop3解析邮件的时候,在解析邮件包含 ... -
Javamail 的AuthenticationFailedException异常
2009-09-04 10:43 2290Javamail接收用pop3协议接收邮件的时候,我们可以通过 ... -
字符串转化为unicode编码
2009-04-28 11:42 1582字符串转化为unicode编码 package com ... -
SFTP上传和下载
2008-05-06 15:24 8730维护一个旧项目(eJMS),先前从JDK1.3升级到1.5,后 ... -
项目由OC4J 9i升级到OC4J10g
2008-04-27 18:45 1486最近项目eJMS需要由oc4j 9 ... -
Java日积月累001-字符串比较的技巧,避免NullPointerException
2008-04-16 23:33 1327这里说的String的比较是value的比较,通过equals ... -
Tomcat设置Session time out的时间
2007-04-11 11:48 3943在Tomcat中的conf/web.xml可以找到以下scri ... -
动态配置log4j
2007-09-04 11:10 3982看到好的文章,收录以备学习之用。文章来源于http://www ...
相关推荐
### SPRING定时器使用说明详解 在现代软件开发中,定时任务执行是常见的需求之一,尤其是在后台服务中,如数据同步、定期清理缓存、发送提醒邮件等场景。Spring框架,作为Java领域中最受欢迎的企业级应用开发框架之...
Spring定时器,也被称为Spring Boot的定时任务,是Spring框架中的一个强大功能,它允许开发者在应用程序中安排周期性任务的执行。这个功能基于Java的`java.util.concurrent.ScheduledExecutorService`,并通过Spring...
### Spring 定时器的使用 #### 背景与需求 在开发应用程序时,并非所有操作都需要用户主动触发。有些任务需要系统自动执行,比如数据同步、定期备份等。例如,电力行业的集抄系统(一种自动收集电表读数的系统)...
Java定时器和Spring定时器是Java开发中用于执行周期性...使用Spring定时器,开发者能够更高效地管理和调度任务,从而提升系统的稳定性和可维护性。在实际项目中,可以根据需求选择适合的定时器,确保系统按预期运行。
首先,我们来看看使用Spring自带的定时任务功能。这主要依赖于`@EnableScheduling`和`@Scheduled`这两个注解。`@EnableScheduling`通常放在配置类上,用来开启调度任务的功能。而`@Scheduled`则可以标记在方法上,...
这个"spring定时器简单的demo"应该包含了一个使用Spring Task实现简单定时任务的例子。 首先,Spring Task的配置通常在`applicationContext.xml`文件中进行。在这个配置文件中,我们需要启用Spring的Task执行器,这...
下面我们将详细探讨Spring定时器的使用方法和相关知识点。 1. **什么是Spring Task(Spring定时任务)**: Spring Task是Spring Framework的一部分,提供了一套完整的定时任务解决方案。它支持基于cron表达式或者...
本实例将详细介绍如何在Spring中使用Quartz作为定时器。 首先,Quartz是一个功能强大的开源作业调度框架,它允许应用程序定义和调度任务,以便在特定时间执行。Spring与Quartz的集成使得在Spring应用中管理定时任务...
下面是一个简单的例子,展示了如何使用Spring AOP和定时任务: ```java @Configuration @EnableAspectJAutoProxy @EnableScheduling public class AppConfig { @Bean public MyAspect myAspect() { return new ...
在标题"spring定时器的包和配置文件"中,我们讨论的核心是Spring如何配置和使用定时器来自动化执行特定的任务。 首先,让我们了解Spring定时任务的基本概念。Spring定时器基于Java的`java.util.Timer`和`java.util....
Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...
以上内容详细介绍了Spring定时器的相关知识点,包括其基本概念、不同类型的定时器以及实际应用中的配置和实现方法。通过理解和掌握这些知识,开发者可以更高效地利用Spring框架来实现复杂的定时任务功能。
下面是一个完整的Spring定时器示例: 1. **配置Spring配置类** 首先,我们需要创建一个配置类,启用定时任务支持,并提供一个`ThreadPoolTaskScheduler`实例,用于调度任务。 ```java @Configuration @...
下面将详细阐述Spring定时器的工作原理、配置方法以及使用场景。 1. **工作原理**: Spring定时器基于`java.util.concurrent.ScheduledExecutorService`接口,它是一个线程池服务,可以用来安排在未来某个时间点...
本文旨在深入解析Spring定时器的时间配置规则,并通过具体的代码示例进行演示。 #### Cron表达式的构成 Cron表达式由六个或七个空格分隔的时间元素组成,这些元素分别代表: 1. **秒** (0–59) 2. **分钟** (0–59...
在本篇中,我们将深入探讨如何在 Spring 框架中实现定时任务功能,特别是使用 Spring MVC 和 Maven 进行构建的情况。 首先,Spring 提供了一个名为 `TaskScheduler` 的接口,用于执行定时任务。这个接口允许我们...
本篇将详细介绍如何配置和使用Spring的定时器来定时调用任务。 首先,让我们了解Spring Task的核心组件。`TaskExecutor`接口用于异步执行任务,而`TaskScheduler`接口则用于调度定时任务。在这个场景中,我们将重点...
Spring定时器Quartz是Java应用中广泛使用的任务调度框架,它允许开发者定义并执行复杂的定时任务。这篇博客可能探讨了如何在Spring框架中集成Quartz,以实现灵活、可扩展的任务调度。 Quartz是一个开源的作业调度...
要使用Spring的定时器功能,首先需要配置一个`TimerTask`实现,然后在Spring的XML配置文件中声明并配置定时任务,例如: ```xml <!-- 这里可以设置Task的属性 --> <bean id="timerTaskScheduler" class="org....