- 浏览: 347506 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
孙大圣123:
大神,你分享的castor dtd文件中没有field-han ...
Castor (二) -- 自定义映射 -
ananeye:
建议举些通俗的例子,说明下。光这样讲,不好懂。
ORACLE 索引原理 -
度_java:
1.不在不同的机器上实现集群功能,除非他们的时钟同步精确到秒。 ...
Quartzs -- Quartz.properties 配置 -
2047699523:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
MAVEN3--(三)创建MAVEN项目 -
qgm168:
写的不错,借用啦,哈哈,多谢!
自定义POI EXCEL模板
- 文件加载位置
默认:优先顺序 Classpath:quartz.properties --> org/quartz/quartz.properties (quartz lib)
改变默认:设置一个系统属性"org.quartz.properties"指向对应的properties文件
- 程序中显示指定
在StdSchedulerFactory.getScheduler()之前使用StdSchedulerFactory.initialize(xx)。
- properties文件中的属性关系
固定前缀org.quartz
主要分为scheduler,ThreadPool,JobStore,plugin等等部分
例如ThreadPool的配置信息
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
实例化ThreadPool的时候使用org.quartz.simpl.SimpleThreadPool,
实例化结束后threadCount,threadPriority 将以setter的形式注入到ThreadPool实例中
- 属性值的复用
$propertyName
$@org.quartz.scheduler.instanceName
- 官方配置文档
http://www.quartz-scheduler.org/documentation/quartz-1.x/configuration/
- threadPool
#Quartz ThreadPool
org.quartz.threadPool.class=threadPool类名(SimpleThreadPool就好)
org.quartz.threadPool.threadCount=thread数量,不会动态增长(所有的JOB)
org.quartz.threadPool.threadPriority=thread优先级
#Quartz SimpleThreadPool(使用默认就好)
#org.quartz.threadPool.makeThreadsDaemons=true/false是否为守护线程
#org.quartz.threadPool.threadsInheritGroupOfInitializingThread=true/false
#org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true/false
- jobStore
1)RAMJobStore
将schedule相关信息保存在RAM中,轻量级,速度快,遗憾的是应用重启时相关信息都将丢失。
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
org.quartz.jobStore.misfireThreshold = 60000
misfireThreshold : 最大能忍受的触发超时时间,如果超过则认为“失误”
2)JDBC-JobStore
将schedule相关信息保存在RDB中.有两种实现:JobStoreTX和JobStoreCMT
前者为application自己管理事务
后者为application server管理事务,即全局事务JTA
JobStoreTX
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass
#类似于Hibernate的dialect,用于处理DB之间的差异,StdJDBCDelegate能满足大部分的DB
org.quartz.jobStore.dataSource
#这个值必须存于一个datasource的配置信息
#org.quartz.dataSource.XXX.driver...
org.quartz.jobStore.tablePrefix
#存储相关信息表的前缀
org.quartz.jobStore.useProperties
#JobDataMaps是否都为String类型
org.quartz.jobStore.misfireThreshold
#与RAMJobStore中的一致
org.quartz.jobStore.isClustered
#是否是应用在集群中,当应用在集群中时必须设置为TRUE,否则会出错org.quartz.jobStore.clusterCheckinInterval
#scheduler的checkin时间,时间长短影响failure scheduler的发现速度
org.quartz.jobStore.maxMisfiresToHandleAtATime
#jobStore处理未按时触发的Job的数量
org.quartz.jobStore.dontSetAutoCommitFalse
#true/false,true则调用connection的setAutoCommit(false)方法
org.quartz.jobStore.selectWithLockSQL
#加锁的SQL语句,默认为SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE
#{0}=$@org.quartz.jobStore.tablePrefix
org.quartz.jobStore.txIsolationLevelSerializable
#true/false, true则调用connection的setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE) 方法
org.quartz.jobStore.acquireTriggersWithinLock
#触发job时是否需要拥有锁
org.quartz.jobStore.lockHandler.class
#用于管理数据库中相关信息的锁机制的类名
- dataSource
建议最大的连接数最少为ThreadPool的threadCount,并且如果应用经常访问scheduler的API的话最好是有一些额外的connection,也就是说要比ThreadPool的worker threads大一些
三种方式
1)datasource的相关信息全部定义于quartz.properties中,quartz自己创建datasource
org.quartz.dataSource.NAME.driver
org.quartz.dataSource.NAME.URL
org.quartz.dataSource.NAME.user
org.quartz.dataSource.NAME.password
org.quartz.dataSource.NAME.maxConnections
#以上为dataSource的基本属性,大家都懂的
#NAME必须与$@org.quartz.jobStore.dataSource一致
org.quartz.dataSource.NAME.validationQuery
#dataSource用于检测connection是否failed/corrupt的SQL语句
2)使用JNDI的datasource
org.quartz.dataSource.NAME.jndiURL
#JNDI URL
org.quartz.dataSource.NAME.java.naming.factory.initial
#JNDI InitialContextFactory
org.quartz.dataSource.NAME.java.naming.provider.url
org.quartz.dataSource.NAME.java.naming.security.principal
org.quartz.dataSource.NAME.java.naming.security.credentials
#后三行为连接到JNDI提供者的相关信息
3)用户自定义org.quartz.utils.ConnectionProvider实现类
org.quartz.dataSource.NAME.connectionProvider.class
org.quartz.dataSource.NAME.XXX
- Cluster
实现故障处理和负载均衡,实现高可用性和扩展性
通过共享DB Tables实现,所以必须使用JDBC-Jobstore
负载均衡 : 谁先触发谁执行,并且一次只有一个scheduler触发
故障处理 : 当一个scheduler失败后,其它的实例可以发现那些执行失败的Jobs,假如Job对应的JobDetail标记为recovery(属性"requests recovery"),那么该Job就会被其它的实例重新执行,否则对应的Job只会被释放等待下次被触发。
实现:
org.quartz.jobStore.isClustered = true
所有的实例的quartz.properties文件除了org.quartz.scheduler.instanceId和org.quartz.threadPool.threadCount必须一致,org.quartz.scheduler.instanceId = AUTO 即可实现ID的不一致
注意:
1.不在不同的机器上实现集群功能,除非他们的时钟同步精确到秒
2.不实现集群的实例不使用同一套表
评论
楼主,这个注意中的第一点是指两台应该服务器当时间不相等的时候,
org.quartz.jobStore.isClustered = true 不能为true吗?
发表评论
-
自定义POI EXCEL模板
2013-07-01 17:51 23101.背景 项目中需要将相关数据导出为EXCEL文件,该文 ... -
POI操作EXCEL
2013-07-01 15:55 9741.简介 Apache POI是Apache软件基金会的开 ... -
JSON-LIB
2013-06-30 15:44 16291.关于JSON JSON(JavaScript Obj ... -
Jasperreport应用小结
2013-06-19 23:15 14241.简介 JasperReport是一 ... -
JAVA实现FTP
2013-06-09 09:05 151001.关于FTP FTP:File Transfe ... -
Digester解析的顺序
2013-03-11 18:07 14471.说明 本文将通过一段代码来说明Digester解析X ... -
ONGL介绍
2012-10-16 17:02 58901.简介 OGNL:Object Graph Navi ... -
MyBatis(一)----基础使用
2012-06-10 22:24 9201.简介 --MyBatis是支持普通SQL查询,存储 ... -
SMOOKS--XSL
2012-06-07 13:33 30851.简介 Smooks是一个用于出力XML和非XML数 ... -
Log4j
2012-05-25 15:28 10771。简介 Log4j是一个应 ... -
commons-logging
2012-05-23 22:25 1054一。简介 commons-logging是Apache下的一 ... -
JFreeChart -- Web应用
2012-01-06 00:26 10171) Model index.jsp < ... -
JUnit -- 分析
2011-12-11 18:08 9901.类结构图 Assert : 大量的ass ... -
Quartzs -- JDBC-JobStore - Oracle 实现 + Cluster
2011-09-13 16:44 4485数据库 从%QUARTZ_HOME%/docs/dbTa ... -
StringTemplate学习笔记(四) StringTemplateGroup文件
2011-08-27 10:31 3500一,简介 StringTemplateGroup ... -
StringTemplate学习笔记(三) st文件加载
2011-08-22 22:40 4368一,简介 ST通过StringTemplateGr ... -
StringTemplate学习笔记(二) 语法
2011-08-21 16:11 10941一,分隔符,注释 <...>貌似只能在Stri ... -
StringTemplate学习笔记(一) 简介
2011-08-21 09:47 2601一,简介 StringTemplate(简称ST ... -
Castor (二) -- 自定义映射
2011-08-03 23:33 39031.概述 Castor的自定义映射关系通过XML设置。 ... -
Castor (一) -- 默认绑定
2011-05-26 23:39 1353在MQ的数据传输过程中,往往将JAVA BEAN与XML进行相 ...
相关推荐
quartz-2.4.0-SNAPSHOT-distribution.tar.gz包,解压后可查看里面的simple
spring-boot-2.1.3.RELEASE.jar -autoconfigure- -devtools- -maven-plugin- -starter- -starter-jdbc- -starter-json- -starter-logging- -starter-test- -starter-tomcat- -starter-web- ...-test-autoconfigure-
该压缩包内包含两个quartz的jar包, 分别是quartz-1.6.0.jar和quartz-all-1.6.0.jar
spring-context-support-4.0.5.RELEASE.jar
quartz-all-1.6.3.jar
quartz.properties
quartz-all-1.6.0.jarquartz-all-1.6.0.jarquartz-all-1.6.0.jar
quartz.jar,spring-context-support.jar(spring多任务定时bag)
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。
spring-beans-3.0.2.RELEASE.jar.zip spring使用quartz所需jar包
quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar
spring-context-support.jar spring整合任务调度quartz必需jar 还需要quartz-all-x.x.x.jar quartz版本必需在1.8.x以下
java运行依赖jar包
quartz-all-1.5.2.jarquartz-all-1.5.2.jarquartz-all-1.5.2.jarquartz-all-1.5.2.jarquartz-all-1.5.2.jar
shiro-crypto-hash-1.7.1.jar,shiro-ehcache-1.7.1.jar,shiro-event-1.7.1.jar,shiro-guice-1.7.1.jar,shiro-hazelcast-1.7.1.jar,shiro-lang-1.7.1.jar,shiro-quartz-1.7.1.jar,shiro-spring-1.7.1.jar,shiro-web-...
quartz-oracle-1.8.6.jar
com.opensymphony.quartz com.oracle.toplink.essentials com.springsource.bundlor com.springsource.util com.sun.syndication com.thoughtworks.xstream 2号包: net.sourceforge.serp net.sourceforge.xslthl ...
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。
调度框架quartz-all-1.6.5.jar
quartz-all-1.8.4.jar