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插件类型有关
网友评论