Quartz配置詳解

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ù)庫(kù)中
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ù)庫(kù)中的頻率
maxMisfiresToHandleAtATime 20 JobStore處理未按時(shí)觸發(fā)的Job數(shù)量
dontSetAutoCommitFalse false 事務(wù)是否自動(dòng)提交
selectWithLockSQL false 配置加鎖的SQL語(yǔ)句,默認(rèn)是: SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE
txIsolationLevelSerializable false 是否使用事務(wù)隔離級(jí)別中的可序列化
acquireTriggersWithinLock true 觸發(fā)事務(wù)前是否需要擁有鎖
lockHandler.class null 用于管理數(shù)據(jù)庫(kù)中相關(guān)鎖機(jī)制的類名

5. 插件

對(duì)于插件的配置項(xiàng)不是固定的,與配置的quartz插件類型有關(guān)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容