Quartz 配置文件屬性


主要配置

 

Property Name

Req'd

Type

Default Value

org.quartz.scheduler.instanceName

no

string

'QuartzScheduler'

org.quartz.scheduler.instanceId

no

string

'NON_CLUSTERED'

org.quartz.scheduler.instanceIdGenerator.class

no

string (class name)

org.quartz.simpl
.SimpleInstanceIdGenerator

org.quartz.scheduler.threadName

no

string

instanceName
+ '_QuartzSchedulerThread'

org.quartz.scheduler
.makeSchedulerThreadDaemon

no

boolean

false

org.quartz.scheduler
.threadsInheritContextClassLoaderOfInitializer

no

boolean

false

org.quartz.scheduler.idleWaitTime

no

long

30000

org.quartz.scheduler.dbFailureRetryInterval

no

long

15000

org.quartz.scheduler.classLoadHelper.class

no

string (class name)

org.quartz.simpl
.CascadingClassLoadHelper

org.quartz.scheduler.jobFactory.class

no

string (class name)

org.quartz.simpl.SimpleJobFactory

org.quartz.context.key.SOME_KEY

no

string

none

org.quartz.scheduler.userTransactionURL

no

string (url)

'java:comp/UserTransaction'

org.quartz.scheduler
.wrapJobExecutionInUserTransaction

no

boolean

false

org.quartz.scheduler.skipUpdateCheck

no

boolean

false

org.quartz.scheduler
.batchTriggerAcquisitionMaxCount

no

int

1

org.quartz.scheduler
.batchTriggerAcquisitionFireAheadTimeWindow

no

long

0

 

org.quartz.scheduler.instanceName

可以為任意字符串,對於scheduler來說此值沒有意義,但可以用來區分同一系統中多個不同的實例。如果你使用了集群的功能,就必須對每個實例使用相同的名稱,這樣使這些實例“邏輯上”是同一個scheduler。

org.quartz.scheduler.instanceId

可以為任意字符串,但如果是集群的,就必須使所有scheduler實例此值唯一。如果你希望instanceId自動生成,可以使用“AUTO”,如果你希望此值來源於系統屬性“org.quartz.scheduler.instanceId”,你可以使用“SYS_PROP”;

org.quartz.scheduler.instanceIdGenerator.class

只有當org.quartz.scheduler.instanceId =AUTO時才會生效。默認是org.quartz.simpl.SimpleInstanceIdGenerator,該生成器根據主機名和時間戳生成instanceid。其他生成器包括了:SystemPropertyInstanceIdGenerator (從系統屬性org.quartz.scheduler.instanceId獲取instance id),HostnameInstanceIdGenerator (根據當前主機名生成(InetAddress.getLocalHost().getHostName())),你也可以實現InstanceIdGenerator 接口實現自己的生成類。

org.quartz.scheduler.threadName

可以為是任何有效的java線程名稱。如果此值沒有配置,默認是“org.quartz.scheduler.instanceName”的值+固定字符串“_QuartzSchedulerThread”

org.quartz.scheduler.makeSchedulerThreadDaemon

true或者false,標識scheduler主線程是否為守護線程。

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer

true或者false,標識Quartz產生的線程是否需要繼承初始化線程(初始化Quartz實例的線程)。這會影響到Quartz的許多主任務線程,JDBCJobStore’s misfire handlingthread (if JDBCJobStore is used), cluster recovery thread (if clustering isused), and threads in SimpleThreadPool (if SimpleThreadPool is used)。將此值設置為true,可以幫助加載類,查找JNDI等等。

org.quartz.scheduler.idleWaitTime

這個屬性設置了scheduler從空閑狀態轉為重新查詢可用triggers的毫秒數。通常不建議修改它,除非你用到了XA transactions或者遇到了triggers本該出發但發生延遲的情況。5000ms以下通常不建議使用,這將產生大量的數據庫查詢操作。小於1000ms是不支持的。

org.quartz.scheduler.dbFailureRetryInterval

當JobStore中有大量鏈接的時候,需要等待的毫秒數。這個屬性對使用RamJobStore沒有什么意義。

org.quartz.scheduler.classLoadHelper.class

大多數穩健的應用,都使用默認值“org.quartz.simpl.CascadingClassLoadHelper”,它會依次使用其他ClassLoadHelper類,直到有一個生效為止。

org.quartz.scheduler.jobFactory.class

JobFactory的類名。默認“org.quartz.simpl.SimpleJobFactory”,你也可以用“org.quartz.simpl.PropertySettingJobFactory”。SimpleJobFactory調用newInstance()方法,PropertySettingJobFactory也是,但它可以將SchedulerContext和Job的內容或者trigger的JobDataMaps利用反射設置job的屬性。

 

org.quartz.context.key.SOME_KEY

在scheduler context中的新建的鍵值對,例如:org.quartz.context.key.MyKey= MyValue,等價於scheduler.getContext().put(“MyKey”, “MyValue”).

 

org.quartz.scheduler.userTransactionURL

應該設置成JNDI URL,通過它Quartz可以找到應用服務的UserTransaction manger。默認值是“java:comp/UserTransaction”-大部分應用服務都是用這個配置。Websphere用戶需要設置成“jta/usertransaction”。這個屬性僅用於Quartz配置使用JobStoreCMT,並且org.quartz.scheduler.wrapJobExecutionInUserTransaction設置為true

 

org.quartz.scheduler.wrapJobExecutionInUserTransaction

如果你想在執行job之前Quartz開啟UserTransaction ,此屬性應該設置為true。Job執行完,JobDataMap更新完(如果是StatefulJob)事務會提交。默認值是false,你也可以在你的job類上使用@ExecuteInJTATransaction 注解,以便在各自的job上決定是否開啟JTA事務。

 

org.quartz.scheduler.skipUpdateCheck

此屬性設置了是否需要檢查更新。在生產環境,最好關閉檢查更新。

 

org.quartz.scheduler.batchTriggerAcquisitionMaxCount

一個scheduler節點允許接收的trigger的最大數,默認值為1,這個值越大,定時任務執行的越多,但代價是集群節點之間的不均衡。

 

org.quartz.scheduler.batchTriggerAcquisitionFireAheadTimeWindow

trigger被接受和提前執行的毫秒數。默認值為0。這個值約大,trigger接受和執行的數量越大,但其代價不能精確的估計。這對那些scheduler有大量的需要相近的時間執行的triggers有用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM