Quartz配置详解

Quartz配置详解

1. 调度器属性

prefix = org.quartz.scheduler

配置项 默认值 必填 备注
instanceName QuartzScheduler 调度器实例名称
instanceId NON_CLUSTERED 调度器实例id
instanceIdGenerator.class org.quartz.simpl.SimpleInstanceIdGenerator 调度器实例Id生成方式,该配置只有在 instanceId 设置为AUTO时才起作用
threadName instanceName+’_QuartzSchedulerThread’ 线程名称
makeSchedulerThreadDaemon false 是否将schedule的主线程设置为守护进程
threadsInheritContextClassLoaderOfInitializer false 指定Quartz生成的线程是否继承初始化线程的上下文类加载器
idleWaitTime 30000 在调度程序空闲的时候,重复查询是否有可用触发器的等待时间
dbFailureRetryInterval 15000 连接超时重试连接的间隔
classLoadHelper.class org.quartz.simpl.CascadingClassLoadHelper 类加载帮助类
jobFactory.class org.quartz.simpl.PropertySettingJobFactory 指定JobFactory的类(接口)名称。负责实例化jobClass
wrapJobExecutionInUserTransaction false 是否在Quartz执行一个job前使用UserTransaction
userTransactionURL java:comp/UserTransaction 设置Quartz能够加载UserTransaction的JNDI的 URL
skipUpdateCheck false 在程序运行前检查quartz是否有版本更新
batchTriggerAcquisitionMaxCount 1 允许调度程序一次性触发的触发器数量
batchTriggerAcquisitionFireAheadTimeWindow 0 允许触发器被获取并在其预定的触发时间之前触发的数量

备注:
threadsInheritContextClassLoaderOfInitializer:
指定Quartz生成的线程是否继承初始化线程的上下文类加载器。这会影响Quartz的主调度线程、JDBCJobStore的”熄火”处理线程、集群回复线程和线程池里的线程。 将该值设置为true可以帮助类加载,JNDI查找。

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

2. 线程池属性

prefix = org.quartz.threadPool

配置项 默认值 必填 备注
class null 线程池的实现类
threadCount -1 线程池中的线程数量
threadPriority 5 线程的优先级
makethreadsdaemons false 是否设置为守护线程
threadsInheritContextClassLoaderOfInitializingThread true
threadsinheritgroupofinitializingthread false
threadnameprefix Worker 线程默认的前缀

3. 监听器属性

prefix = org.quartz.triggerListener.NAME
全局的触发器监听器

配置项 默认值 必填 备注
class null 全局触发器监听器实现类

prefix = org.quartz.jobListener.NAME
全局的触发器监听器

配置项 默认值 必填 备注
class null 全局任务监听器实现类

4. 数据源存储方式

prefix = org.quartz.jobStore

配置项 默认值 必填 备注
class null job的存储方式,可以选择存储在内存中或者持久化数据库中
misfireThreshold 60000 最大能忍受的触发超时时间
driverDelegateClass null 用于处理DB之间差异的实现类
dataSource null 配置数据源的名称
tablePrefix QRTZ_ 数据表前缀
useProperties true 使用key-value的形式存储JobDataMap
isClustered false 是否以集群方式运行
clusterCheckinInterval 20000 检入到数据库中的频率
maxMisfiresToHandleAtATime 20 JobStore处理未按时触发的Job数量
dontSetAutoCommitFalse false 事务是否自动提交
selectWithLockSQL false 配置加锁的SQL语句,默认是: SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE
txIsolationLevelSerializable false 是否使用事务隔离级别中的可序列化
acquireTriggersWithinLock true 触发事务前是否需要拥有锁
lockHandler.class null 用于管理数据库中相关锁机制的类名

5. 插件

对于插件的配置项不是固定的,与配置的quartz插件类型有关

你可能感兴趣的:(Quartz配置详解)