主要配置
| 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 |
| org.quartz.scheduler.threadName |
no |
string |
instanceName |
| org.quartz.scheduler |
no |
boolean |
false |
| org.quartz.scheduler |
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 |
| 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 |
no |
boolean |
false |
| org.quartz.scheduler.skipUpdateCheck |
no |
boolean |
false |
| org.quartz.scheduler |
no |
int |
1 |
| org.quartz.scheduler |
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有用。
