- 浏览: 316591 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
poterliu:
太棒了,这正是我要的效果
带复选框(checkbox)的下拉列表 -
no_bao:
a164906480 写道不好意思啊,不少东西,我用的时候就是 ...
java使用Map进行分组统计 -
a164906480:
不好意思啊,不少东西,我用的时候就是转int的时候光报异常。 ...
java使用Map进行分组统计 -
a164906480:
String[] strArr=null;
4 ...
java使用Map进行分组统计 -
a164906480:
问一下你后面的数是怎么加的吗
java使用Map进行分组统计
1 触发器的监听器和作业的监听器(TriggerListeners&JobListeners)
Listener是我们创建用于监听Scheduler中关于事件发生情况的对象,其中TriggerListener接收涉及Trigger事件的情况,JobListener接收涉及Job事件的情况。
<!--[if !supportLists]-->l <!--[endif]-->Trigger的事件: Trigger触发、Trigger过时触发和Trigger触发的完成。
<!--[if !supportLists]-->l <!--[endif]-->Job的事件:Job的执行通知和Job的完成通知。
要创建Listener,只需简单的实现org.quartz.TriggerListener或org.quartz.JobListener接口,接着运行时把Listener注册到Scheduler中即可,在注册过程中需要为创建的Listener命名,Listener可以注册为全局的和非全局的,全局的Listener接收所有Trigger/Job的事件,非全局的Listener只接收指定设置的Trigger/Job事件,把JobListener注册到Scheduler的方法如下:scheduler.addGlobalJobListener(myJobListener)或scheduler.addJobListener(myJobListener);
2 调度监听器(SchedulerListeners)
SchedulerListener与TriggerListener和JobListener类似,SchedulerListener只接收涉及Scheduler自己的事件通知,而与指定设置的Trigger/Job无关;
有关Scheduler的事件包括:Job/Trigger的增加、Job/Trigger的删除、Scheduler中一系列严重的事件和Scheduler的关闭等事件;
SchedulerListener的创建和注册与其他类型的Listener很相似,但是它没有区分全局和非全局的情况,只要实现了org.quartz.SchedulerListener接口的对象都是。
3 作业存储(JobStores)
JobStore负责跟踪我们对Scheduler进行配置的有关Job、Trigger和Calendar等信息的数据;选择适当的JobStore对我们的Quartz Scheduler实例是很重要的,幸运的是,当我们理解了不同类型JobStore时,就可以很容易地对JobStore进行选择,我们可以通过对SchedulerFactory创建Scheduler实例所引用的配置文件中的属性进行声明,采用哪种JobStore。
3.1 RAMJobStore
RAMJobStore是使用JobStore最简单的一种方式,它也是性能最高效的,顾名思义,JobStore是把它的数据都存储在RAM中,这也是它的快速和简单配置的原因;RAMJobStore的缺点是:当我们的应用系统因为系统的崩溃而丢失了所有有关Scheduler的信息时,采用RAMJobStore方式将无法恢复原先Scheduler中有关Job和Trigger的设置;对一些应用来说,这是可以接收的,但是对其他一些应用来说,这就不是所期望的。
3.2 JDBCJobStore
JDBCJobStore也是一种相当有名的JobStore,它通过JDBC把数据都保存到数据库中,所以在配置上会比RAMJobStore复杂一些,而且不像RAMJobStore那么快,但是当我们对数据库中的表的主键创建索引时,性能上的缺点就不是很关键的了。
JDBCJobStore几乎可以连接所有的数据库,广泛使用的数据库基本上有Oracle、MySQL、MS SQLServer 2000、HSQLDB、PostreSQL和DB2。使用JDBCStore,我们必须首选创建一系列的数据库表,为了提供给Quartz使用;我们可以在docs/dbTables目录中找到创建表SQL脚本文件,需要注意的是:在这些脚本中所创建的表都以“QRTZ_”为表名的前缀,如:QRTZ_TRIGGERS和QRTZ_JOB_DETAIL;我们可以对表名的前缀进行任意的修改,只要配置文件中有关前缀的属性值与实际的数据库表的前缀一致即可;采用前缀的方式可以在同一个数据库中保存多个Scheduler实例的数据,通过不同的前缀进行区分;
我们一旦完成了数据库表的创建,在我们配置和启用JDBCJobStore之前,需要决定在我们的应用中采用哪一种类型的事务;如果我们在执行Scheduling命令(如:增加和删除Trigger)时不需要关联到其他的事务中,我们就可以采用JobStoreTX的方式让Quartz管理这个事务,一般情况下都是采用JobStoreTX的方式来管理事务的。
如果我们应用中需要Quartz与其他事务一起运行(如:J2EE应用服务器),就需要采用JobStoreCMT的事务管理方式,这样Quartz将会让应用服务器容器管理事务;
最后一个难题是JDBCJobStore中有关连接数据库的DataSource的设置,Quartz属性中包含了Datasource的几种配置方法,一种是采用Quartz创建和管理DataSource的方式,提供了数据库连接的所有信息;另一种是Quartz使用应用服务器(Quartz运行当中的应用服务器)管理的DataSource,通过采用提供JDBCJobStore的JNDI名字的方式;有关配置属性的详细信息,可以参考“docs/config”目录中的配置文件。
为了使用JDBCJobStore,我们首选需要设置Quartz配置文件中JobStore类属性值为org.quartz.impl.jdbcjobstore.JobStoreTX或为org.quartz.impl.jdbcjobstore.JobStoreCMT,具体设为哪个值可根据我们的应用的需要及结合上面对JobStoreTX和JobStoreCMT的解析;比如:org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX;
下一步我们需要JobStore的DriverDelegate属性,DriverDelegate是负责执行所有与JDBC有关的处理,需要选择与指定数据库对应的Delegate;StdJDBCDelegate是使用一般的JDBC代码(和SQL语句)来执行处理的Delegate,当我们所使用的数据库没有对应的delegate时,可以试着使用StdJDBCDelegate;在org.quartz.impl.jdbcjobstore包或子包中可以找到其他的delegate,其他的delegate大概包含:DB2v6Delegate(用于DB2 version 6和更低version的)、HSQLDBDelegate(用于HSQLDB)、MSSQLDelegate(用于Microsoft SQLServer 2000)、PostgreSQLDelegate(用于PostgreSQL 7.x)、WeblogicDelegate(用于使用Weblogic的JDBC驱动程序)和OracleDelegate(用于Oracle8i和9i);
一旦选定delegate后,需要对driverDelegateClass属性进行设置:org.quartz.jobStore.driverDelegate = org.quartz.impl.jdbcjobstore.StdJDBCDelegate;
接着我们需要向JobStore声明数据库表名的前缀,通过tablePrefix进行设置:org.quartz.jobStore.tablePrefix = QRTZ_;
最后我们需要设置JobStore将使用哪个DataSource,在Quartz属性配置文件中也需要定义DataSource属性,如:org.quartz.jobStore.dataSource = myDS。
发表评论
-
xml验证二----java根据xsd验证xml
2013-11-07 09:47 2435xml 转换 xsd 参考 http://51876 ... -
xml验证之----xml转换为xsd(trang.jar)
2013-11-07 09:43 73741、执行环境 Trang的执行环境:JRE1.4+ ... -
swfUpload火狐浏览器firefox不显示上传按钮
2013-10-29 11:01 5242问题描述: 使用swfUpload ... -
Multipart/form-data POST文件上传详解
2013-09-03 18:00 9475Multipart/form-data POST文件上传详解 ... -
quartz报错java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.ord
2013-08-19 14:02 1064quartz报错:Caused by: java.lang.N ... -
增加tomcat并发量
2013-08-01 17:44 5927tomcat默认的连接是线程阻塞的,即protocol配置为 ... -
Tomcat并发数优化的方法总结
2013-08-01 14:07 10721,让Tomcat6 中支持Java语言的特性 NIO( N ... -
java使用Map进行分组统计
2013-07-09 14:43 6686用java读取txt文本,并根据ip段分组合计|后面的值,即i ... -
JDBC事务的保存点处理
2013-05-10 09:55 1717JDBC事务的保存点处理 ... -
<s:iterator> 标签补齐循环固定行数
2013-03-21 16:22 2110比如有一公告列表 每页展现 5条 如果不足5条 ... -
在tomcat的catalina.sh文件中添加了jconsole检测内存配置
2013-01-21 10:32 2553在tomcat的catalina.sh文件中添 ... -
java随机数
2013-01-21 10:23 965public static String getRandom ... -
Quartz 动态配置时间及集成配置
2012-11-29 15:04 1564本文转载于: http://sundoct ... -
MyEclipse优化技巧
2012-11-02 11:01 956MyEclipse优化技巧 第一步: ... -
Quartz使用指南(七)-----Spring中使用Quartz进行作业调度
2012-10-22 09:10 18531 Spring中使用Qu ... -
Quartz使用指南(五)-----Cron触发器(CronTrigger)
2012-10-22 09:09 2102<!--[if !supportLists]--> ... -
Quartz使用指南(四)-----触发器(Triggers)
2012-10-19 18:04 31814 触发器(Triggers) 与Job相比,Trig ... -
Quartz使用指南(三)-----标识符、 作业和作业详情(Identifiers&Jobs&JobDetails)
2012-10-19 17:54 1539标识 ... -
Quartz使用指南(二)-----作业和触发器Job&Trigger
2012-10-19 17:49 1832我们可以使Scheduler简单地执行一个实现了Job接 ... -
Quartz使用指南(一)-----Quartz简介
2012-10-19 17:47 2031<!--[endif]--> ...
相关推荐
同时,Quartz还支持插件机制,允许开发人员添加自定义的触发器、监听器和作业存储实现。 在使用"quartz-2.1.7.jar"时,开发者需要将其引入到项目类路径中,并通过`Scheduler`实例来配置和启动调度器。配置通常涉及...
6. **监听器与插件**:应用可以通过实现监听器接口来监控和控制任务与触发器的行为。插件机制允许扩展Quartz的功能,如日志记录、任务加载等。预定义的插件和监听器简化了系统的集成。 7. **常见问题解答**:对于...
10. **监听器和插件机制**:提供多种监听器和插件,便于扩展 Quartz 的功能,如记录任务执行日志或从文件加载任务定义。 #### 二、使用 Quartz 的常见问题解答 1. **Quartz 是什么?** - Quartz 是一款功能强大且...
6. **插件(Plugins)**:Quartz提供了多种插件,如EmailTriggerListener(邮件触发监听器)和StatefulJob(有状态的Job),它们可以扩展Quartz的功能,例如在任务完成后发送通知邮件,或者确保Job的并发执行控制。...
本指南将深入探讨 Quartz 的核心概念、配置与使用方法,并提供源码分析,帮助开发者更高效地利用这一强大工具。 1. **Quartz 基本概念** - **Job**:Job 是实际要执行的任务,是一个实现了 `org.quartz.Job` 接口...
- **内置组件**:Quartz 自带了一些“工厂构建”的插件和监听器,方便开发者使用。 #### 二、使用 Quartz 的常见问题解答 - **一般问题**: - **Quartz 是什么**:Quartz 是一个任务日程管理系统,用于调度和...
7. **监听器**:TriggerListener 和 JobListener 用于监听 Job 和 Trigger 的事件,例如 Job 的执行开始、结束,Trigger 的触发等。通过实现这些接口,你可以实现自定义的行为,比如日志记录、错误处理或通知机制。 ...
* 监听器及插件(Listeners & Plug-Ins):应用可以通过实现一个或者多个监听器接口来实现捕捉日程事件,以监视或控制任务/触发器的行为 在使用 Quartz 时,开发者需要注意的一些常见问题包括: * Quartz 是什么?...
6. **监听器(Listener)**:Quartz允许添加各种监听器,如JobListener、TriggerListener和SchedulerListener,以便在特定事件发生时接收通知,如作业开始、结束或触发器触发。 在使用Quartz时,开发者通常会遵循...
6. **监听器和插件**:Quartz支持监听器和插件机制,这使得开发人员可以方便地监控任务状态或扩展Quartz的功能。 #### 三、任务调度 Quartz中的任务调度主要依赖于**触发器**(Trigger)的概念。触发器可以定义...
- **Listeners & Plug-Ins (监听器及插件)**: - 应用可以通过实现一个或者多个监听器接口来实现捕捉日程事件,以监视或控制任务/触发器的行为; - 可以通过插件的机制来扩展 Quartz 的功能。例如:记录任务执行...
这个目录通常包含插件的文档,可能包括用户指南、API参考等,帮助开发者了解如何使用`Grails-Quartz` 插件,以及其提供的各种功能和API。 **5. src** 源代码目录,可能包含`Groovy` 或其他语言编写的插件代码,如...
其中涵盖了关于Quartz配置的所有关键方面,包括主调度器设置、线程池配置、全局监听器配置以及各种存储配置等。 #### 二、关于Quartz配置 Quartz Scheduler是一种广泛使用的开源作业调度框架,能够帮助开发者在...
- **监听器和插件**:介绍如何使用SchedulerListener、JobListener和TriggerListener监控调度事件,以及如何集成和使用Quartz提供的插件。 - **错误处理和异常管理**:如何处理任务执行中的异常,以及如何配置全局...
4. **丰富的监听器与插件机制**:Quartz支持通过监听器和插件扩展其功能,如记录任务执行的历史日志、加载外部文件中的任务和触发器定义等。 5. **集群支持**:Quartz支持集群部署,能够实现负载均衡和容错能力,...
- **事件和监听器**:可以通过监听器来监控和响应调度事件,如任务开始、结束、失败等。 总的来说,Quartz.NET是.NET开发者在设计需要定时执行任务的应用程序时的一个强大工具。通过其丰富的功能和强大的灵活性,...
6. **自定义JobListener和TriggerListener**: 通过实现这些监听器,你可以监控Job和Trigger的生命周期事件,添加自定义的行为。 阅读"Quartz.pdf"和"Quartz开发指南.pdf"这两份文档,你将获得更深入的理论知识和...