1. 程式人生 > >quartz屬性檔案和jar包說明

quartz屬性檔案和jar包說明

屬性的介紹(quartz.properties)

# Default Properties file for use by StdSchedulerFactory
# to create a Quartz Scheduler Instance, if a different
# properties file is not explicitly specified.
#

#config scheduler
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

#config threadPool
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true

#config jobStore
org.quartz.jobStore.misfireThreshold = 600000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

#config plugin
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileNames = my_quartz_jobs.xml,my_quartz_jobs2.xml
org.quartz.plugin.jobInitializer.validating = false
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true

1.排程器屬性(scheduler):分別設定排程器的例項名(instanceName) 和例項 ID (instanceId)。屬性org.quartz.scheduler.instanceName 可以是你喜歡的任何字串。預設名字一般都採用QuartzScheduler,第二個屬性org.quartz.scheduler.instanceIdinstaneName 屬性一樣,instanceId 屬性也允許任何字串。這個值必須是在所有排程器例項中是唯一的,尤其是在一個叢集當中。假如你想 Quartz 幫你生成這個值的話,可以設定為AUTO

2、執行緒池屬性(threadPool):

這些執行緒在 Quartz 中是執行在後臺擔當重任的。threadCount屬性控制了多少個工作者執行緒被建立用來處理 Job。原則上是,要處理的 Job 越多,那麼需要的工作者執行緒也就越多。threadCount的數值至少為1。Quartz 沒有限定你設定工作者執行緒的最大值,但是在多數機器上設定該值超過100的話就會顯得相當不實用了,特別是在你的 Job 執行時間較長的情況下。這項沒有預設值,所以你必須為這個屬性設定一個值。

threadPriority 屬性設定工作者執行緒的優先順序。優先級別高的執行緒比級別低的執行緒更優先得到執行。threadPriority 屬性的最大值是常量java.lang.Thread.MAX_PRIORITY

,等於10。最小值為常量java.lang.Thread.MIN_PRIORITY,為1。這個屬性的正常值是 Thread.NORM_PRIORITY,為5。大多情況下,把它設定為5,這也是沒指定該屬性的預設值。

最後一個要設定的執行緒池屬性是org.quartz.threadPool.class。這個值是一個實現了org.quartz.spi.ThreadPool 介面的類的全限名稱。Quartz 自帶的執行緒池實現類是org.quartz.smpl.SimpleThreadPool,它能夠滿足大多數使用者的需求。這個執行緒池實現具備簡單的行為,並經很好的測試過。它在排程器的生命週期中提供固定大小的執行緒池。你能根據需求建立自己的執行緒池實現,如果你想要一個隨需可伸縮的執行緒池時也許需要這麼做。這個屬性沒有預設值,你必須為其指定值。

3、作業儲存屬性(jobStore):作業儲存部分的設定描述了在排程器例項的生命週期中,Job 和 Trigger 資訊是如何被儲存的。把排程器資訊儲存在記憶體中非常的快也易於配置。當排程器程序一旦被終止,所有的 Job 和 Trigger 的狀態就丟失了。要使 Job 儲存在記憶體中需通過設定 org.quartz.jobStrore.class 屬性為org.quartz.simpl.RAMJobStore,在Cron Trigger 和“作業儲存和持久化”會用到的不同型別的作業儲存實現。

4、其他外掛屬性(plugin):org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin預設時,JobInitializationPlugin外掛會在 classpath 中搜索名為 quartz_jobs.xml 的檔案並從中載入 Job 和 Trigger 資訊。

#自動掃描任務單並發現改動的時間間隔,單位為秒
org.quartz.plugin.jobInitializer.scanInterval = 10
#覆蓋任務排程器中同名的jobDetail,避免只修改了CronExpression所造成的不能重新生效情況
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true

#可配置多個xml,用逗號隔開

org.quartz.plugin.jobInitializer.fileNames = my_quartz_jobs.xml,my_quartz_jobs2.xml

第三方包

通過測試。一個簡單任務只需要以下幾個包:commons-beanutils.jar、commons-collections.jar、commons-logging.jar、commons-digester.jar、quartz.jar即可