附录 A. Quartz 配置参考
本附录编写作为配置一个 Quartz 应用的快速参考。尽管这些信息在
Quartz 文档中都有,但是这个附录提供了一种更快的方式来查找配置属性和它们可能的值。
一. 主要的 Quartz
属性
表 A.1 列出了主要的 Scheduler 属性。它们用于声明和标识 Scheduler
和其他高层次的设置。
表 A.1. 主要的 Quartz Scheduler 属性
名称
|
必须
|
类型
|
默认值
|
|
org.quartz.scheduler.instanceName
|
否 |
String
|
'QuartzScheduler'
|
|
org.quartz.scheduler.instanceId
|
否 |
String
|
'NON_CLUSTERED'
|
|
org.quartz.scheduler.instanceIdGenerator.class
|
否 |
String
|
org.quartz.simpl.SimpleInstanceIdGenerator
|
|
org.quartz.scheduler.threadName
|
否 |
String
|
instanceName+'_QuartzSchedulerThread'
|
|
org.quartz.scheduler.idleWaitTime
|
否 |
Long
|
30000
|
|
org.quartz.scheduler.dbFailureRetryInterval
|
否 |
Long
|
15000
|
|
org.quartz.scheduler.classLoadHelper.class
|
否 |
String
|
org.quaartz.simpl.CascadingClassLoadHelper
|
|
org.quartz.context.key.SOME_KEY
|
否 |
String
|
None
|
|
org.quartz.scheduler.userTransactionURL
|
否 |
String
|
'java:comp/UserTransaction'
|
|
org.quartz.scheduler.wrapJobExecutionIn
UserTransaction
|
否 |
Boolean
|
false
|
|
org.quartz.scheduler.jobFactory.class
|
否 |
String
|
org.quartz.simple.SimpleJobFactory
|
|
·org.quartz.scheduler.instanceName
每个
Scheduler 必须给定一个名称来标识。当在同一个程序中有多个实例时,这个名称作为客户代码识别是哪个 Scheduler
而用。假如你用到了集群特性,你就必须为集群中的每一个实例使用相同的名称,以使它们成为“逻辑上” 是同一个 Scheduler
。
·org.quartz.scheduler.instanceId
每个 Quartz
Scheduler 必须指定一个唯一的 ID。这个值可以是任何字符串值,只要对于所有的 Scheduler 是唯一的。如果你想要自动生成的 ID,那你可以使用
AUTO
作为
instanceId
。从版本
1.5.1 开始,你能够定制如何自动生成实例 ID。见
instanceIDGenerator.class
属性,会在接下来讲到。
·org.quartz.scheduler.instanceIdGenerator.class
从版本
1.5.1 开始,这个属性允许你定制instanceId 的生成,这个属性仅被用于属性
org.quartz.scheduler.instanceId
设置为
AUTO
的情况下。默认是
org.quartz.simpl.SimpleInstanceIdGenerator
,它会基于主机名和时间戳来产生实例
ID 的。
·org.quartz.scheduler.threadName
可以是对于 Java
线程来说有效名称的任何字符串。假如这个属性未予指定,线程将会接受 Scheduler 名称 (
org.quartz.scheduler.instanceName
) 前附加上字符串 '
_QuartzSchedulerThread'
作为名称。
·org.quartz.scheduler.idelWaitTime
这个属性设置了当
Scheduler 处于空闲时转而再次查询可用 Trigger 时所等待的毫秒数。通常,你无需调整这个参数,除非你正使用 XA 事物,遇到了 Trigger
本该立即触发而发生延迟的问题。
·org.quartz.scheduler.dbFailureRetryInterval
这个属性设置
Scheduler 在检测到 JobStore 到某处的连接(比如到数据库的连接) 断开后,再次尝试连接所等待的毫秒数。这个参数在使用
RamJobStore
无效。
·org.quartz.scheduler.classLoadHelper.class
对于多数健状的应用,所使用的默认值为
org.quartz.simpl.CascadingClassLoadHelper
类,它会依序使用其他的
ClassLoadHelper
类,直到有一个能正常工作为止。你大概没必须为这个属性指定任何其他的类,除非有可能在应用服务器中时。当前所有可能的
ClassLoadHelper
实现可在
org.quartz.simpl
包中找到。
·org.quartz.context.key.SOME_KEY
这个属性用于向
"Scheduler 上下文" 中置入一个 名-值 对表示的字符串值。(见
Scheduler.getContext()
)。因此,比如设置了
org.quartz.context.key.MyEmail =
myemail@somehost.com
就相当于执行了
scheduler.getContext().put("MyEmail",
myemail@somehost.com
)
·org.quartz.scheduler.userTransactionURL
它设置了
Quartz 能在哪里定位到应用服务器的
UserTransaction
管理器的 JNDI
URL。默认值(未设定的话) 是
java:comp/UserTransaction
,这几乎能工作于所有的应用服务器中。Websphere
用户也许需要设置这个属性为
jta/usertransaction
。这个属性仅用于 Quartz 配置使用
JobStoreCMT
的情况,并且
org.quartz.scheduler.wrapJobExecutionInUserTransaction
被设定成了
true
。
·org.quartz.scheduler.wrapJobExecutionInUserTransaction
如果你要
Quartz 在调用你的 Job 的
execute
之前启动一个
UserTransaction
的话,设置这个属性为
true
。这个事物将在 Job 的
execute
方法完成和
JobDataMap
(假如是一个
StatefulJob
) 更新后提交。默认值为
false
。
·org.quartz.scheduler.jobFactory.class
这是所用的
JobFactory
的类名称。默认为
org.quartz.simpl.SimpleJobFactory
。你也可以试试
org.quartz.simpl.PropertySettingJobFactory
。一个 Job 工厂负责产生
Job 类的实例。
SimpleFactory
类是调用 Job 类的
newInstance()
方法。
PropertySettingJobFactory
也会调用
newInstance()
,但还会使用
JobDataMap
中的内容以反射方式设置 Job Bean 的属性。
[译者 Unmi 本篇后记] 从正式发布《Quartz Job Scheduling
Framework 中文版.chm 》之后到现在又快过去四个月的时间了,正如前面提到的那个 CHM
文件确实包含了绝大部份主体的内容,就差最后一个附录:Quartz
配置参考,说来也是个缺憾。耽搁的太久,每天都会发生很多事情,可是这几个月对我来太不平静,家庭的、个人的、工作上的事故接踵而至。既然想起来了,还是着手完成这个事吧,之后会汇入到先前那个
CHM 文件中的。况且也还不时有人提起关于翻译版权的问题,实际上通过了解确有不对,该如何呢?暂顶顶风了。
另外,在此提一下 org.quartz.scheduler.jobFactory,因为它简单的调用 Job 类的 newInstance() 方法来得到 Job
实例,所以你的 Job 要有一个无参构造方法。有一个网友使用 Quartz 在 Scheduler 初始化 Job 时碰到这样的错误:
严重:
An error occured instantiating job to be executed. job=
'jobDetailGroup1.jobDetail1'
org.quartz.SchedulerException: Problem
instantiating class 'steve.InvokeCmdAction$SimpleQuartzJob' [See nested
exception: java.lang.InstantiationException:
steve.InvokeCmdAction$SimpleQuartzJob]
at
org.quartz.simpl.SimpleJobFactory.newJob(SimpleJobFactory.java:57)
at
org.quartz.core.JobRunShell.initialize(JobRunShell.java:132)
at
org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:387)
Caused
by: java.lang.InstantiationException:
steve.InvokeCmdAction$SimpleQuartzJob
at
java.lang.Class.newInstance0(Class.java:340)
at
java.lang.Class.newInstance(Class.java:308)
at
org.quartz.simpl.SimpleJobFactory.newJob(SimpleJobFactory.java:55)
... 2
more
问题在于 Quartz 的 SimpleFactory 无法实例化
'steve.InvokeCmdAction$SimpleQuartzJob' 这个例,看这个类名,带个 $ 符号,很显然是写
InvokeCmdAction.java 文件中的,后来他把 SimpleQuartzJob 单独写在 SimpleQuartzJob.java
文件中问题即得到解决。如若有兴趣的话,定制自己的 JobFactory 配置给 org.quartz.scheduler.jobFactory 属性,那对于
'steve.InvokeCmdAction$SimpleQuartzJob' Job 类也是可以成功实例化的。
原文地址:http://www.blogjava.net/Unmi/archive/2008/12/20/247455.html
相关推荐
基于springboot大学生就业信息管理系统源码数据库文档.zip
基于java的驾校收支管理可视化平台的开题报告
时间序列 原木 间隔5秒钟 20241120
毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip
基于springboot课件通中小学教学课件共享平台源码数据库文档.zip
基于java的网上购物商城的开题报告
Delphi人脸检测与识别Demo1fdef-main.zip
基于java的咖啡在线销售系统的开题报告
基于java的自助医疗服务系统的开题报告.docx
内容概要:本文档全面介绍了Visual Basic(VB)编程语言的基础知识和高级应用。首先概述了VB的基本特性和开发环境,随后详细讲述了VB的数据类型、变量、运算符、控制结构、数组、过程与函数、变量作用域等内容。接着介绍了窗体设计、控件使用、菜单与工具栏的设计,文件操作、数据库访问等关键知识点。最后讨论了VB的学习方法、发展历史及其在桌面应用、Web应用、数据库应用、游戏开发和自动化脚本编写等领域的广泛应用前景。 适合人群:初学者和中级程序员,尤其是希望快速掌握Windows桌面应用开发的人群。 使用场景及目标:①掌握VB的基础语法和开发环境;②学会使用VB创建复杂的用户界面和功能完整的应用程序;③理解数据库操作、文件管理和网络编程等高级主题。 其他说明:Visual Basic是一种简单易学且功能强大的编程语言,尤其适合用于开发Windows桌面应用。文中不仅覆盖了基础知识,还包括了大量的实用案例和技术细节,帮助读者快速提升编程技能。
基于java的疫情期间高校防控系统开题报告.docx
基于springboot+vue社区老年人帮扶系统源码数据库文档.zip
基于java的超市商品管理系统的开题报告.docx
基于SpringBoot房屋买卖平台源码数据库文档.zip
xdu限通院23微处理器系统与应用大作业(两只老虎),适应于汇编语言keil软件,
<项目介绍> - 新闻类网站系统,基于SSM(Spring、Spring MVC、MyBatis)+MySQL开发,高分成品毕业设计,附带往届论文 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
基于java的学生网上请假系统的开题报告.docx
社会经济繁荣发展的今天,电子商务得到了飞速发展,网上交易越来越彰显出其独特的优越性,在人们的日常生活中,出现了各种类型的交易网站。其中一个就是车辆易主交易网站,它是一个服务于用户买卖二手车辆的交易网站,为用户提供了平等互利、方便快捷的网上交易平台,通过这一类型的网站,用户可自由出售和购买车辆。 本课题主要根据车辆本身的特性,充分发挥互联网的特点与优势,构建一个以二手车辆为商品、基于互联网平台的车辆易主业务交易管理系统,并根据车辆易主业务交易管理系统的应用需求,进行需求分析,进而对网站系统作规划设计。采用IDEA为运行平台,以SSH为框架,运用HTML语言、JSP技术、MySql数据库、JSP与后台数据库链接等关键技术建设二手车网上交易系统,构建车辆易主交易系统的会员注册与登录,网站首页展示、用户发布商品车辆,用户求购商品车辆,分页浏览、购物系统、用户后台管理、管理员用户后台管理等功能,并使这些功能得以实现并更好为用户服务。网站整体构建完成且测试成功后,用户可以进入网站进行注册、登录,登录后,用户可以在网站上发布自己的闲置车辆或者寻找想要购买的车辆,还可以收藏车辆,管理发布和收藏的车辆,
SQLite3的向量扩展库,windows dll,版本0.1.5
基于C++实现(控制台)商品库存管理系统