- 浏览: 102616 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 843学习quartz首先了解三个概念: 调度器:负责调度作 ... -
介绍Quartz
2012-04-27 12:22 1411介绍Quartz Quartz是一个开源的任务调度 ... -
Quartz中SimpleTrigger的探讨
2012-04-27 11:34 7041.来写一个每隔10秒启动一次任务的例子. import j ... -
Quartz中SimpleTrigger的探讨
2012-04-16 11:59 645Quartz中SimpleTrigger的探讨 让我们 ... -
理解Java对象序列化
2012-02-15 09:38 696关于Java序列化的文章早 ... -
认识Arrays(一)打印
2012-02-03 16:52 572Arrays提供了一组操作array的静态方法。 一、基本类 ... -
oracle java数据类型对应表
2011-12-05 13:37 0[img]http://dl.iteye.com/upload ... -
计算任意2个正整数的乘积
2011-11-12 21:36 1206接上一篇整数的阶乘算法,来计算2个正整数的乘积; 算法如下: ... -
计算任意正整数的阶乘
2011-11-12 20:17 667由于阶乘的结果会超出java数据类型的最大范围,所 ... -
Java调用外部程序技巧
2011-11-08 09:17 796前些天使用Java调用外部程序的时候,发现线程会堵塞在wa ... -
多核平台下的JAVA优化
2011-11-08 09:12 633现在多核CPU是主流。利用多核技术,可以有效发挥硬件的能力 ... -
使用 Eclipse Memory Analyzer 进行堆转储文件分析
2011-11-07 17:09 773http://www.ibm.com/developerwor ... -
infoQ 文档ppt
2011-11-07 11:43 1252http://www.docin.com/app/user/c ... -
游戏性能监控
2011-11-07 10:18 01、cpu消耗(耗时)监控 在功能代码前后取时间值,相减,发 ... -
使用Cacti监控你的网络(一)- Cacti概述及工作流程
2011-11-07 09:36 675http://blog.sina.com.cn/s/b ... -
浅析 Java Thread.join()
2011-10-29 09:25 861一、在研究join的用法之前,先明确两件事情。 1.join ... -
hashmap线程不安全在哪里?
2011-10-13 11:33 1078大家都知道HashMap不是线程安全的,但是大家的理解 ... -
java面试题及答案(基础题122道,代码题19道)
2011-10-10 22:54 654http://ilovelate.itpub.net/post ... -
关于UnsupportedOperationException异常
2011-09-29 12:03 569我们在使用collection框 ... -
关注一下druid
2011-09-26 09:21 699关注一下druid,阿里开源的jdbc组件,可以监控数据库访问 ...
相关推荐
quartz 触发器表达式生成器 准确的生成触发器生成器
Quartz触发器的使用DEMO(Spring实现)
quartz触发器表达式生成器,根据这个工具自动生成表达式,粘贴即可使用
最近项目在用quartz去定时执行一些方法,这些时间都是动态的,而且还要去动态的去修改这些触发的时间,但是网上资料不全,这里写了个案例希望可以帮到大家,包呢得靠大家自己下载了,我这里用的包是quartz官网上下载...
自己写的Quartz+Sping定时触发器例子,包含全部jar包,可直接运行。注释完整,适合初学者学习。
NULL 博文链接:https://hyj0903.iteye.com/blog/978153
spring添加触发器+quartz,做定时执行的功能
Quartz所有dll:Common.Logging.Core.dll、Quartz.dll等 触发器时间简便捷配置器,
定时任务quartz实现分组串行并行动态配置
该压缩包内包含两个quartz的jar包, 分别是quartz-1.6.0.jar和quartz-all-1.6.0.jar
使用Spring Quartz执行定时任务
文件里面包括 1:Quartz开发指南.pdf 2:Quartz从入门到进阶.pdf 3:QuartzBeginnerExample一个附带的工程例子 4:quartz-1.6.1.zip Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它...
Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,...
spring之quartz例子,与oracle整合,不过spring中的MethodInvokingJobDetailFactoryBean方法在存数据库时序列化有bug,在本例子中,使用了修复后的MethodInvokingJobDetailFactoryBean方法,避免了因序列化而报错。
赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...
本文使用一系列代码示例介绍 Quartz.NET API,演示它的机制,例如作业、触发器、作业仓库。 Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net...
虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问...
虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问...
quartz简单实例quartz简单实例quartz简单实例quartz简单实例
Quartz.NET是一个开源的作业调度框架,是...它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业.