Quartz配置詳解
1. 調(diào)度器屬性
prefix = org.quartz.scheduler
配置項(xiàng) | 默認(rèn)值 | 必填 | 備注 |
---|---|---|---|
instanceName | QuartzScheduler | 非 | 調(diào)度器實(shí)例名稱 |
instanceId | NON_CLUSTERED | 非 | 調(diào)度器實(shí)例id |
instanceIdGenerator.class | org.quartz.simpl.SimpleInstanceIdGenerator | 非 | 調(diào)度器實(shí)例Id生成方式旋讹,該配置只有在 instanceId 設(shè)置為AUTO時(shí)才起作用 |
threadName | instanceName+’_QuartzSchedulerThread’ | 非 | 線程名稱 |
makeSchedulerThreadDaemon | false | 非 | 是否將schedule的主線程設(shè)置為守護(hù)進(jìn)程 |
threadsInheritContextClassLoaderOfInitializer | false | 非 | 指定Quartz生成的線程是否繼承初始化線程的上下文類加載器 |
idleWaitTime | 30000 | 非 | 在調(diào)度程序空閑的時(shí)候,重復(fù)查詢是否有可用觸發(fā)器的等待時(shí)間 |
dbFailureRetryInterval | 15000 | 非 | 連接超時(shí)重試連接的間隔 |
classLoadHelper.class | org.quartz.simpl.CascadingClassLoadHelper | 非 | 類加載幫助類 |
jobFactory.class | org.quartz.simpl.PropertySettingJobFactory | 非 | 指定JobFactory的類(接口)名稱蛔溃。負(fù)責(zé)實(shí)例化jobClass |
wrapJobExecutionInUserTransaction | false | 非 | 是否在Quartz執(zhí)行一個(gè)job前使用UserTransaction |
userTransactionURL | java:comp/UserTransaction | 非 | 設(shè)置Quartz能夠加載UserTransaction的JNDI的 URL |
skipUpdateCheck | false | 非 | 在程序運(yùn)行前檢查quartz是否有版本更新 |
batchTriggerAcquisitionMaxCount | 1 | 非 | 允許調(diào)度程序一次性觸發(fā)的觸發(fā)器數(shù)量 |
batchTriggerAcquisitionFireAheadTimeWindow | 0 | 非 | 允許觸發(fā)器被獲取并在其預(yù)定的觸發(fā)時(shí)間之前觸發(fā)的數(shù)量 |
備注:
threadsInheritContextClassLoaderOfInitializer:
指定Quartz生成的線程是否繼承初始化線程的上下文類加載器。這會(huì)影響Quartz的主調(diào)度線程算凿、JDBCJobStore的”熄火”處理線程揽碘、集群回復(fù)線程和線程池里的線程。 將該值設(shè)置為true可以幫助類加載唱较,JNDI查找哥纫。
batchTriggerAcquisitionMaxCount:
值越大一次性觸發(fā)的任務(wù)就可以越多霉旗,但是在集群環(huán)境【非必須】下,不建議設(shè)置為很大值蛀骇。如果值 > 1, 并且使用了 JDBC JobStore的話, org.quartz.jobStore.acquireTriggersWithinLock屬性必須設(shè)置為true厌秒,以避免”弄臟”數(shù)據(jù)
2. 線程池屬性
prefix = org.quartz.threadPool
配置項(xiàng) | 默認(rèn)值 | 必填 | 備注 |
---|---|---|---|
class | null | 是 | 線程池的實(shí)現(xiàn)類 |
threadCount | -1 | 是 | 線程池中的線程數(shù)量 |
threadPriority | 5 | 非 | 線程的優(yōu)先級(jí) |
makethreadsdaemons | false | 非 | 是否設(shè)置為守護(hù)線程 |
threadsInheritContextClassLoaderOfInitializingThread | true | 非 | |
threadsinheritgroupofinitializingthread | false | 非 | |
threadnameprefix | Worker | 非 | 線程默認(rèn)的前綴 |
3. 監(jiān)聽器屬性
prefix = org.quartz.triggerListener.NAME
全局的觸發(fā)器監(jiān)聽器
配置項(xiàng) | 默認(rèn)值 | 必填 | 備注 |
---|---|---|---|
class | null | 非 | 全局觸發(fā)器監(jiān)聽器實(shí)現(xiàn)類 |
prefix = org.quartz.jobListener.NAME
全局的觸發(fā)器監(jiān)聽器
配置項(xiàng) | 默認(rèn)值 | 必填 | 備注 |
---|---|---|---|
class | null | 非 | 全局任務(wù)監(jiān)聽器實(shí)現(xiàn)類 |
4. 數(shù)據(jù)源存儲(chǔ)方式
prefix = org.quartz.jobStore
配置項(xiàng) | 默認(rèn)值 | 必填 | 備注 |
---|---|---|---|
class | null | 是 | job的存儲(chǔ)方式,可以選擇存儲(chǔ)在內(nèi)存中或者持久化數(shù)據(jù)庫中 |
misfireThreshold | 60000 | 非 | 最大能忍受的觸發(fā)超時(shí)時(shí)間 |
driverDelegateClass | null | 是 | 用于處理DB之間差異的實(shí)現(xiàn)類 |
dataSource | null | 是 | 配置數(shù)據(jù)源的名稱 |
tablePrefix | QRTZ_ | 是 | 數(shù)據(jù)表前綴 |
useProperties | true | 非 | 使用key-value的形式存儲(chǔ)JobDataMap |
isClustered | false | 非 | 是否以集群方式運(yùn)行 |
clusterCheckinInterval | 20000 | 非 | 檢入到數(shù)據(jù)庫中的頻率 |
maxMisfiresToHandleAtATime | 20 | 是 | JobStore處理未按時(shí)觸發(fā)的Job數(shù)量 |
dontSetAutoCommitFalse | false | 非 | 事務(wù)是否自動(dòng)提交 |
selectWithLockSQL | false | 非 | 配置加鎖的SQL語句擅憔,默認(rèn)是: SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE |
txIsolationLevelSerializable | false | 非 | 是否使用事務(wù)隔離級(jí)別中的可序列化 |
acquireTriggersWithinLock | true | 非 | 觸發(fā)事務(wù)前是否需要擁有鎖 |
lockHandler.class | null | 非 | 用于管理數(shù)據(jù)庫中相關(guān)鎖機(jī)制的類名 |
5. 插件
對(duì)于插件的配置項(xiàng)不是固定的鸵闪,與配置的quartz插件類型有關(guān)