- 浏览: 107042 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (99)
- 经济 (1)
- dwr (2)
- 测试 (0)
- java (29)
- resin (1)
- oracle (3)
- 感悟 (1)
- jvm (15)
- mina2 (5)
- j2se (12)
- linux (28)
- protobuf (1)
- tcp/ip (0)
- jdbc (0)
- 数据库 (4)
- 游戏 (0)
- 技术文档 (1)
- nosql (2)
- 算法 (2)
- apache (2)
- mysql (1)
- hashcode (1)
- spring (2)
- quartz (5)
- netcat (2)
- 分页 (1)
- 正则 (0)
- shell (1)
- lsof (1)
- nginx (1)
- git (1)
最新评论
-
fys124974704:
你试下将第三条写成以下这样,你会发现你的结论不对:select ...
ORACLE分页SQL语句 -
ikon:
两个乘数没有转成integer,而是当成字符串;BigInte ...
计算任意2个正整数的乘积 -
kidding87:
效率不是很高,思路没有问题,但是你的两个乘数输入都都转为Int ...
计算任意2个正整数的乘积 -
k1280000:
------------------------同意!
学习之道
Quartz中一个Job往往是一个任务业务逻辑的实现,Job并不知道何时被执行。那么执行一个Quartz Job的是一个Trigger实例。Quartz Trigger继承了Quartz框架中的org.quartz.Trigger类,在Quartz框架中目前有三个实现的触发器可用:
· org.quartz.SimpleTrigger
· org.quartz.CronTrigger
· org.quartz.NthIncludedDayTrigger
其实还有一个触发器实现,叫做UICronTrigger,不过在Quartz1.5版本之后,这个触发器便不推荐使用。它主要用在Quartz Web应用程序中,Quartz本身并不再使用。
使用org.quartz.SimpleTrigger
从类的命名上,想必聪明的你已经明白,SimpleTrigger主要是针对一些相对简单的时间触发进行配置使用,比如在指定的时间开始然后在一定的时间间隔之内重复执行一个Job,同事可以任意指定重复的次数.下面就是使用一个SimpleTrigger的例子:
public class Listing_4_9 {
static Log logger = LogFactory.getLog(Listing_4_9.class);
public static void main(String[] args) {
Listing_4_9 example = new Listing_4_9();
example.startScheduler();
}
public void startScheduler() {
try {
// 创建并启动调度实例
Scheduler scheduler =
StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
logger.info("Scheduler has been started");
JobDetail jobDetail =
new JobDetail("PrintInfoJob",
Scheduler.DEFAULT_GROUP,
PrintInfoJob.class);
/*
* 创建一个立即启动的触发器,这个触发器没有结束日期,每一分钟(60000毫秒)
* 执行一次。
*/
Trigger trigger =
new SimpleTrigger("myTrigger",
Scheduler.DEFAULT_GROUP, new Date(), null,
SimpleTrigger.REPEAT_INDEFINITELY,
60000L);
scheduler.scheduleJob(jobDetail, trigger );
} catch (SchedulerException ex) {
logger.error(ex);
}
}
}
在SimpleTrigger中有多个构造函数。下面的代码创建了一个带有名称和默认组的trigger:
//No Argument Constructor
SimpleTrigger sTrigger = new SimpleTrigger("myTrigger", Scheduler.DEFAULT_GROUP);
上面创建这个触发器在创建后便立即执行,单并且没有重复。同样SimpleTrigger还有其他构造函数参数来配置创建特定时间、重复次数和触发器每次执行的延迟时间,如下面这个构造函数:
public SimpleTrigger(String name, String group, String jobName, String jobGroup, Date startTime, Date endTime, int repeatCount, long repeatInterval);
使用org.quartz.CronTrigger
CronTrigger可以配置更复杂的触发时刻表,当然使用一个或者多个SimpleTriggers也许同样可以达到效果,但是CronTrigger却可以用更简单的方法解决更复杂的事情。
CronTrigger的时刻表配置类似于Unix下的cron表达式。比如,可能有这样一个Job需要在每周的星期一和星期五早上8点到9点每五分钟执行一次,如果直接使用SimpleTrigger来实现的话,想必要费一些周折。那么此时就可以使用一个类似于cron表达式的表达语句来指定此触发时刻表。
"0 0/5 8 ? * MON,FRI"
try {
CronTrigger cTrigger = new CronTrigger("myTrigger",
Scheduler.DEFAULT_GROUP, "0 0/5 8 ? *MON,FRI");
} catch (ParseException ex) {
ex.printStackTrace();
}
CronTriggers在时刻的触发配置上拥有非常大的弹性,几乎可以创建所有的时刻表表达式。后续我们会更详细的讲解CronTriggers和cron表达式的用法。
使用 org.quartz.NthIncludedDayTrigger
org.quartz.NthIncludedDayTrigger是Quartz开发团队在Quartz框架中新添加的一个触发器。它设计的目标是提供不同时间间隔的第n天执行时刻表。比如,你想在每个月的第15日处理财务发票记帐,那么可以使用NthIncludedDayTrigger来完成这项工作。Quartz日历(Calendar)同样可以和一个触发器进行关联来设定双休日或者假期。下面我们来创建一个实例来说明如何使用NthIncludedDayTrigger:
NthIncludedDayTrigger trigger =
new NthIncludedDayTrigger("MyTrigger", Scheduler.DEFAULT_GROUP);
trigger.setN(15);
trigger.setIntervalType(NthIncludedDayTrigger.INTERVAL_TYPE_MONTHLY);
发表评论
-
Quartz定时任务学习(一)简单任务
2012-04-27 12:30 889学习quartz首先了解三个概念: 调度器:负责调度作 ... -
介绍Quartz
2012-04-27 12:22 1447介绍Quartz Quartz是一个开源的任务调度 ... -
Quartz中SimpleTrigger的探讨
2012-04-27 11:34 7431.来写一个每隔10秒启动一次任务的例子. import j ... -
Quartz中SimpleTrigger的探讨
2012-04-16 11:59 684Quartz中SimpleTrigger的探讨 让我们 ... -
理解Java对象序列化
2012-02-15 09:38 730关于Java序列化的文章早 ... -
认识Arrays(一)打印
2012-02-03 16:52 609Arrays提供了一组操作array的静态方法。 一、基本类 ... -
oracle java数据类型对应表
2011-12-05 13:37 0[img]http://dl.iteye.com/upload ... -
计算任意2个正整数的乘积
2011-11-12 21:36 1255接上一篇整数的阶乘算法,来计算2个正整数的乘积; 算法如下: ... -
计算任意正整数的阶乘
2011-11-12 20:17 692由于阶乘的结果会超出java数据类型的最大范围,所 ... -
Java调用外部程序技巧
2011-11-08 09:17 834前些天使用Java调用外部程序的时候,发现线程会堵塞在wa ... -
多核平台下的JAVA优化
2011-11-08 09:12 672现在多核CPU是主流。利用多核技术,可以有效发挥硬件的能力 ... -
使用 Eclipse Memory Analyzer 进行堆转储文件分析
2011-11-07 17:09 816http://www.ibm.com/developerwor ... -
infoQ 文档ppt
2011-11-07 11:43 1305http://www.docin.com/app/user/c ... -
游戏性能监控
2011-11-07 10:18 01、cpu消耗(耗时)监控 在功能代码前后取时间值,相减,发 ... -
使用Cacti监控你的网络(一)- Cacti概述及工作流程
2011-11-07 09:36 737http://blog.sina.com.cn/s/b ... -
浅析 Java Thread.join()
2011-10-29 09:25 908一、在研究join的用法之前,先明确两件事情。 1.join ... -
hashmap线程不安全在哪里?
2011-10-13 11:33 1111大家都知道HashMap不是线程安全的,但是大家的理解 ... -
java面试题及答案(基础题122道,代码题19道)
2011-10-10 22:54 704http://ilovelate.itpub.net/post ... -
关于UnsupportedOperationException异常
2011-09-29 12:03 607我们在使用collection框 ... -
关注一下druid
2011-09-26 09:21 750关注一下druid,阿里开源的jdbc组件,可以监控数据库访问 ...
相关推荐
在 Quartz 中,触发器是定义任务何时运行的核心组件。触发器可以根据不同的需求设置不同的类型,如SimpleTrigger、CronTrigger等。CronTrigger 使用Cron表达式来定义任务的执行周期,而这种表达式可能对一些开发者来...
在本示例中,“Quartz+Spring定时触发器例子”是一个完整的项目,包含了所有必要的jar包,这意味着你可以直接运行它来学习和理解Quartz与Spring的集成。这个项目应该包含以下组件: 1. **配置文件**:可能包含一个...
Quartz是一个开源的作业调度框架,它允许开发者在.NET环境中安排任务执行。这个"Quartz所有dll+触发器时间简便捷配置器"包含了Quartz...无论是理解Quartz的内部工作原理,还是快速构建自己的调度系统,都能从中受益。
Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz 2.2.3版本中,初始化数据库是使用...正确理解和使用这些SQL语句,有助于确保Quartz在各种数据库环境中稳定运行。
Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。它提供了丰富的API和灵活性,...通过理解和正确应用这些脚本,开发者可以充分利用Quartz的强大功能,创建和管理复杂的时间驱动任务。
学习和理解这个源码包,可以帮助你深入理解Quartz的工作原理,以及如何在实际项目中灵活运用。通过分析和实践,你可以掌握如何创建动态任务,如何根据业务需求调整任务执行策略,以及如何进行错误处理和监控。这将对...
这个实例是为初学者设计的,用于帮助理解Quartz的基本概念和使用方式。在MyEclipse 6.0.1环境下,你可以直接运行这个Spring整合Quartz的示例项目,以便深入学习Quartz的调度功能。 Quartz的核心概念包括: 1. **Job...
从创建作业和触发器,到调度和管理任务,每个示例都会逐步引导你理解Quartz的工作原理。同时,你可以结合Spring框架,使用`@DisallowConcurrentExecution`和`@PersistJobDataAfterExecution`注解来处理并发执行和...
- **阅读文档**:`doc`目录中的文档可以帮助理解Quartz.NET的高级特性,如集群支持、并发控制和故障转移。 通过以上步骤,你可以全面掌握Quartz.NET的使用和开发,不仅能够利用它为你的应用程序添加定时任务功能,...
通过`quartz-1.4.5-sources.jar`,我们可以深入理解Quartz的内部工作原理。例如: - `org.quartz.Job`接口是所有任务类的基类,你需要实现它的execute方法来定义任务逻辑。 - `org.quartz.Trigger`接口定义了触发器...
首先,理解Quartz的核心概念是必要的。`Job`是执行任务的基本单元,`Trigger`则决定了何时触发Job。Quartz提供了`Scheduler`来管理和调度这些Job和Trigger。`JobGroup`是Job的集合,可以用来组织和管理相关的Job。 ...
Quartz和Spring-Quartz是两个在Java世界...“spring-quartz-demo”可能是一个完整的示例项目,你可以通过运行它来深入理解Quartz在Spring中的应用。通过研究这些资源,你可以更全面地掌握Quartz和Spring-Quartz的用法。
1. **灵活的调度**:Quartz 支持多种调度模式,如简单触发器、cron 触发器和作业链,允许你精确控制任务的执行时间。 2. **可集群**:Quartz 可以在多台服务器上运行,实现任务的高可用性和负载均衡,确保在任何一台...
通过学习和运行这个实例,你可以深入理解Quartz的工作原理,并将其应用到自己的项目中,实现定时任务的自动化调度。确保根据你的项目需求调整触发器和作业的设置,以及正确配置Quartz以适应你的环境。
通过上述知识点,我们可以理解Quartz-all.zip文件如何与Spring结合,实现定时任务的自动化执行。这个整合方案对于需要周期性执行任务的系统来说非常实用,例如数据同步、报表生成、清理过期记录等。
Quartz是Java领域一个强大的、开源的工作调度框架,它允许开发者创建、调度和管理作业,以执行复杂的定时任务。在本实例中,我们将探讨如何基于Java...这个实例可以帮助你更好地理解和运用Quartz框架,提高工作效率。
Quartz.NET是一个开源的工作调度框架,它允许开发者在.NET环境中创建和执行计划任务。这个“作业调度Quartz.net源代码...通过实践这些示例,你将更好地理解Quartz.NET的工作原理,从而在自己的项目中灵活运用作业调度。
Quartz是一款开源的Java作业调度框架,...这本书对于理解Quartz的底层机制和实现高效、可靠的定时任务非常有帮助。通过阅读并实践书中的内容,你将能够熟练掌握这个强大的工具,为你的Java应用添加智能的时间驱动功能。
Quartz是一款开源的作业调度框架,它允许开发者在Java应用程序中定义定时任务。在大型分布式系统中,为了提高系统的容错性和高...同时,了解和理解这些表的结构和作用,对于理解和优化Quartz集群的工作机制也至关重要。
"Quartz开发指南.pdf"则提供了更深入的开发指导,这通常包括实际编程示例,帮助开发者理解如何在项目中集成Quartz,编写作业类,定义触发器,以及处理并发和恢复策略。书中可能还有关于如何使用书签功能快速定位到...