我们通常是通过quartz.properties属性配置文件(默认情况下均使用该文件)结合StdSchedulerFactory 来使用Quartz的。StdSchedulerFactory 会加载属性配置文件并实例化一个Scheduler。

默认情况下,Quartz会加载classpath下的”quartz.properties”文件作为配置属性,如果找不到则会使用quartz框架自己jar下org/quartz包底下的”quartz.properties”文件。当然你也可以指定”org.quartz.properties”属性指向你自定义的属性配置文件。或者,你也可以在调用StdSchedulerFactory的 getScheduler()方法之前调用 initialize(xx)初始化factory配置。

主调度程序Scheduler的配置
参数名 是否必须 类型 默认值
org.quartz.scheduler.instanceName N string 'QuartzScheduler'
org.quartz.scheduler.instanceId N string 'NON_CLUSTERED'
org.quartz.scheduler.instanceIdGenerator.class N string (class name) org.quartz.simpl.SimpleInstanceIdGenerator
org.quartz.scheduler.threadName N string instanceName+'_QuartzSchedulerThread'
org.quartz.scheduler.makeSchedulerThreadDaemon N boolean false
org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer N boolean false
org.quartz.scheduler.idleWaitTime N string 30000
org.quartz.scheduler.dbFailureRetryInterval N long 15000
org.quartz.scheduler.classLoadHelper.class N string (class name) org.quartz.simpl.CascadingClassLoadHelper
org.quartz.scheduler.jobFactory.class N string (class name) org.quartz.simpl.PropertySettingJobFactory
org.quartz.context.key.SOME_KEY N string none
org.quartz.scheduler.userTransactionURL N string (url) 'java:comp/UserTransaction'
org.quartz.scheduler.wrapJobExecutionInUserTransaction N boolean false
org.quartz.scheduler.skipUpdateCheck N boolean false
org.quartz.scheduler.batchTriggerAcquisitionMaxCount N int 1
org.quartz.scheduler.batchTriggerAcquisitionFireAheadTimeWindow N long 0

org.quartz.scheduler.instanceName
使用StdSchedulerFactory的 getScheduler()方法创建的scheduler实例名称,在同一个程序中可以根据该名称来区分scheduler。如果实在集群环境中使用,你必须使用同一个名称——集群环境下”逻辑”相同的scheduler。

org.quartz.scheduler.instanceId
scheduler实例的标志id,必须是全局唯一的,即使在集群环境中”逻辑”相同的scheduler。 或者可以使用“SYS_PROP”通过系统属性设置id。

org.quartz.scheduler.instanceIdGenerator.class
只有在”org.quartz.scheduler.instanceId”设置为”AUTO”的时候才使用该属性设置。默认情况下,“org.quartz.simpl.SimpleInstanceIdGenerator”是基于instanceId和时间戳来自动生成的。其他的id生成器的实现包括 SystemPropertyInstanceIdGenerator 从系统属性获取 “org.quartz.scheduler.instanceId”, 和 HostnameInstanceIdGenerator 使用主机名 (InetAddress.getLocalHost().getHostName())。你也可以自定义生成方式哦。

org.quartz.scheduler.threadName
指定线程名,如果不指定的话,会自动使用org.quartz.scheduler.instanceName属性值加上后缀字符串”_QuartzSchedulerThread”.

org.quartz.scheduler.makeSchedulerThreadDaemon
指定scheduler的主线程是否为后台线程。

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer
指定Quartz生成的线程是否继承初始化线程的上下文类加载器。这会影响Quartz的主调度线程、JDBCJobStore的”熄火”处理线程、集群回复线程和线程池里的线程。 将该值设置为“true”可以帮助类加载,JNDI查找,并在应用程序服务器上使用Quartz等相关问题。

org.quartz.scheduler.idleWaitTime
在调度程序空闲的时候,重复查询是否有可用触发器的等待时间。通常并不会设置为true,除非你是用XA事务,并且延迟触发会导致问题的场景。 5000ms以下是不推荐的,因为它会导致过的的数据库查询。1000ms以下是非法的。

org.quartz.scheduler.dbFailureRetryInterval
连接超时重试连接的间隔。使用 RamJobStore时,该参数并没什么用。

org.quartz.scheduler.classLoadHelper.class
默认最可靠的方式就是指定”org.quartz.simpl.CascadingClassLoadHelper”,没必要指定其他类。

org.quartz.scheduler.jobFactory.class
指定JobFactory的类(接口)名称。负责实例化jobClass。默认是”org.quartz.simpl.PropertySettingJobFactory”,只是在job被执行的时候简单调用newInstance()实例化一个job类。PropertySettingJobFactory 会使用反射机制通过SchedulerContext、 Job、Trigger和 JobDataMaps设置job bean的属性。

使用JTA事务时,可以设置事务相关的属性

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前使用UserTransaction,则应该设置该属性为true。job执行完、在JobDataMap改变之后事务会提交。默认值是false。 可以在你的job类中使用 @ExecuteInJTATransaction注解, 可以控制job是否使用事务。

org.quartz.scheduler.skipUpdateCheck
建议设置为“org.terracotta.quartz.skipUpdateCheck=true”不会在程序运行中还去检查quartz是否有版本更新。

org.quartz.scheduler.batchTriggerAcquisitionMaxCount
允许调度程序一次性触发的触发器数量。.默认值是1。值越大一次性触发的任务就可以越多,但是在集群环境下,不建议设置为很大值。如果值 > 1, 并且使用了 JDBC JobStore的话, org.quartz.jobStore.acquireTriggersWithinLock属性必须设置为true,以避免”弄脏”数据。

org.quartz.scheduler.batchTriggerAcquisitionFireAheadTimeWindow
允许触发器被获取并在其预定的触发时间之前触发的数量。默认值0。

Quartz线程池的配置

参数名 是否必须 类型 默认值
org.quartz.threadPool.class Y string (class name) null
org.quartz.threadPool.threadCount Y string -1
org.quartz.threadPool.threadPriority N int Thread.NORM_PRIORITY (5)

org.quartz.threadPool.class
线程池的名字。可以使用后Quartz 的 “org.quartz.simpl.SimpleThreadPool”。

org.quartz.threadPool.threadCount
指定线程数量。一般1-100足以满足你的应用需求了。

org.quartz.threadPool.threadPriority
线程优先级,Thread.MIN_PRIORITY (1) and Thread.MAX_PRIORITY (10)之间,默认Thread.NORM_PRIORITY (5)。

监听器的配置

全局触发器的监听器配置:

org.quartz.triggerListener.NAME.class = com.foo.MyListenerClass
org.quartz.triggerListener.NAME.propName = propValue
org.quartz.triggerListener.NAME.prop2Name = prop2Value

全局job的监听器配置:

org.quartz.jobListener.NAME.class = com.foo.MyListenerClass
org.quartz.jobListener.NAME.propName = propValue
org.quartz.jobListener.NAME.prop2Name = prop2Value

jobStore的配置
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
或者
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT
或者
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

数据源的配置
org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@10.0.1.23:1521:demodb
org.quartz.dataSource.myDS.user = myUser
org.quartz.dataSource.myDS.password = myPassword
org.quartz.dataSource.myDS.maxConnections = 30

从一个应用服务中获取数据源配置:

org.quartz.dataSource.myOtherDS.jndiURL=jdbc/myDataSource
org.quartz.dataSource.myOtherDS.java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory
org.quartz.dataSource.myOtherDS.java.naming.provider.url=ormi://localhost
org.quartz.dataSource.myOtherDS.java.naming.security.principal=admin
org.quartz.dataSource.myOtherDS.java.naming.security.credentials=123

集群配置

#==============================================================
#Configure Main Scheduler Properties
#配置文件KEY说明参考:org.quartz.impl.StdSchedulerFactory
#默认配置文件名:quartz.properties,如果未放入配置,则使用org/quartz/quartz.properties
#==============================================================
#调度器实例名称,默认值:QuartzScheduler
org.quartz.scheduler.instanceName = quartzScheduler
#调度器实例编号自动生成,默认值:NON_CLUSTERED,可设置值:AUTO
org.quartz.scheduler.instanceId = AUTO

#==============================================================
#Configure ThreadPool
#==============================================================
#线程池实现类
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
#执行最大并发线程数量
org.quartz.threadPool.threadCount = 5
#线程优先级
org.quartz.threadPool.threadPriority = 5

#==============================================================
#Configure JobStore
#==============================================================
#持久化方式配置
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
#持久化方式配置数据驱动,标准数据库(如MYSQL)
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
#quartz相关数据表前缀名
org.quartz.jobStore.tablePrefix = QRTZ_
#开启分布式部署
org.quartz.jobStore.isClustered = true
#分布式节点有效性检查时间间隔,单位:毫秒
org.quartz.jobStore.clusterCheckinInterval = 10000
#配置数据源
org.quartz.jobStore.dataSource = myDS

#==============================================================
#Configure DataSource
#==============================================================
org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.myDS.URL = jdbc:mysql://127.0.0.1:3306/51token2?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
org.quartz.dataSource.myDS.user = root
org.quartz.dataSource.myDS.password = tangqun
org.quartz.dataSource.myDS.maxConnections = 5
org.quartz.dataSource.myDS.validationQuery=select 0 from dual

quartz.properties完整版的更多相关文章

  1. springboot application.properties 常用完整版配置信息

    从springboot官方文档中扒出来的,留存一下以后应该会用到 # ================================================================= ...

  2. spring aop中pointcut表达式完整版

    spring aop中pointcut表达式完整版 本文主要介绍spring aop中9种切入点表达式的写法 execute within this target args @target @with ...

  3. 【ELK】4.spring boot 2.X集成ES spring-data-ES 进行CRUD操作 完整版+kibana管理ES的index操作

    spring boot 2.X集成ES 进行CRUD操作  完整版 内容包括: ============================================================ ...

  4. 常用经典SQL语句大全完整版--详解+实例 (存)

    常用经典SQL语句大全完整版--详解+实例 转 傻豆儿的博客 http://blog.sina.com.cn/shadou2012  http://blog.sina.com.cn/s/blog_84 ...

  5. 常用经典SQL语句大全完整版--详解+实例 《来自网络,很全没整理,寄存与此》

    常用经典SQL语句大全完整版--详解+实例 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML ...

  6. springmvc web.xml和application.xml配置详情(附:完整版pom.xml)

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...

  7. (六)mybatis-spring集成完整版

    mybatis-spring集成完整版 一.项目整体 mybatis接口层.mapper层 Service层 Test调用测试 二.自动生成代码-mybatis generator 主要修改: 接口. ...

  8. 探索ORACLE之ASM概念(完整版)

    探索ORACLE之ASM概念(完整版) 本文出自https://www.jb51.net/article/43527.htm ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出 ...

  9. 【Quartz】Quartz存储与持久化-基于quartz.properties的配置

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.   Quartz存储与持久化 Quartz提供两种基本作业存储类型.第一种类型叫做RAM ...

随机推荐

  1. 信号报告-python

    #Signal report.py a = eval(input()) #这里要整除 readability = a // 10 strength = a - readability * 10 # p ...

  2. oracle中left join,right join,inner join的坑

    本文主要是记录一下实际使用oracle中join查询遇到的坑 1.用到两张表,学生表和学年分数表,先建立 2.普通连接查询 INNER JOIN,查询每个学年有成绩的学生以及分数情况 LFET JOI ...

  3. 通过sql查找指定字段存在哪些表中

    select * from INFORMATION_SCHEMA.columns where COLUMN_NAME Like '%order_type%';

  4. java中next()和nextLine()的区别

    首先,next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后 ...

  5. Ubuntu16.04中如何启用floodlight的一种方式

    在 floodlight文件夹下输入 java -jar target/floodlight.jar 启动floodlight控制器,在浏览器窗口输入 http://localhost:8080/ui ...

  6. SSH配置

    什么是SSH: SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH ...

  7. Ubuntu18.04下make menuconfig缺少ncurses库

    kent@hu:~/work/03-kernel/linux-4.15.1$ make menuconfig *** Unable to find the ncurses libraries or t ...

  8. Python练习十

    1.生成随机整数,从1-5取出来然后输入一个数字,来猜,如果大于,则打印bigger小了,则打印less如果相等,则打印equal. import random num1 = random.randi ...

  9. Spring-Cloud-Netflix

    Spring Cloud Netflix组件以及部署 (1)Eureka,服务注册和发现,它提供了一个服务注册中心.服务发现的客户端,还有一个方便的查看所有注册的服务的界面. 所有的服务使用Eurek ...

  10. Windows操作系统线程调度耍起来

    Windows等常用操作系统都不是实时性操作系统,所谓不是实时性,意思是你写的程序放在这个操作系统上面运行,当程序需要睡眠2秒时,你的程序睡眠的可能不是2秒,而是2秒后能变为可调度状态,但是如果系统程 ...