gbk

          Quartz定時(shí)任務(wù)學(xué)習(xí)(三)屬性文件和jar

          以下是我在應(yīng)用的的一個(gè)基本配置:

          #---------調(diào)度器屬性----------------
          org.quartz.scheduler.instanceName = TestScheduler
          org.quartz.scheduler.instanceId = one

          #---------線程配置---------------
          org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
          org.quartz.threadPool.threadCount = 2
          org.quartz.threadPool.threadPriority = 4

          #---------作業(yè)存儲(chǔ)設(shè)置------------
          org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
          #---------插件配置-------------
          org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
          org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
          org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
          org.quartz.plugin.jobInitializer.failOnFileNotFound = true

          org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
          org.quartz.plugin.shutdownhook.cleanShutdown = true

          屬性的介紹

          1.調(diào)度器屬性:分別設(shè)置調(diào)度器的實(shí)例名(instanceName) 和實(shí)例 ID (instanceId)。屬性 org.quartz.scheduler.instanceName 可以是你喜歡的任何字符串。默認(rèn)名字一般都采用QuartzScheduler,第二個(gè)屬性org.quartz.scheduler.instanceIdinstaneName 屬性一樣,instanceId 屬性也允許任何字符串。這個(gè)值必須是在所有調(diào)度器實(shí)例中是唯一的,尤其是在一個(gè)集群當(dāng)中。假如你想 Quartz 幫你生成這個(gè)值的話,可以設(shè)置為 AUTO

          2、線程池屬性:這些線程在 Quartz 中是運(yùn)行在后臺(tái)擔(dān)當(dāng)重任的。threadCount 屬性控制了多少個(gè)工作者線程被創(chuàng)建用來處理 Job。原則上是,要處理的 Job 越多,那么需要的工作者線程也就越多。threadCount 的數(shù)值至少為 1。Quartz 沒有限定你設(shè)置工作者線程的最大值,但是在多數(shù)機(jī)器上設(shè)置該值超過100的話就會(huì)顯得相當(dāng)不實(shí)用了,特別是在你的 Job 執(zhí)行時(shí)間較長(zhǎng)的情況下。這項(xiàng)沒有默認(rèn)值,所以你必須為這個(gè)屬性設(shè)定一個(gè)值。

          threadPriority 屬性設(shè)置工作者線程的優(yōu)先級(jí)。優(yōu)先級(jí)別高的線程比級(jí)別低的線程更優(yōu)先得到執(zhí)行。threadPriority 屬性的最大值是常量 java.lang.Thread.MAX_PRIORITY,等于10。最小值為常量 java.lang.Thread.MIN_PRIORITY,為1。這個(gè)屬性的正常值是 Thread.NORM_PRIORITY,為5。大多情況下,把它設(shè)置為5,這也是沒指定該屬性的默認(rèn)值。

          最后一個(gè)要設(shè)置的線程池屬性是 org.quartz.threadPool.class。這個(gè)值是一個(gè)實(shí)現(xiàn)了 org.quartz.spi.ThreadPool 接口的類的全限名稱。Quartz 自帶的線程池實(shí)現(xiàn)類是 org.quartz.smpl.SimpleThreadPool,它能夠滿足大多數(shù)用戶的需求。這個(gè)線程池實(shí)現(xiàn)具備簡(jiǎn)單的行為,并經(jīng)很好的測(cè)試過。它在調(diào)度器的生命周期中提供固定大小的線程池。你能根據(jù)需求創(chuàng)建自己的線程池實(shí)現(xiàn),如果你想要一個(gè)隨需可伸縮的線程池時(shí)也許需要這么做。這個(gè)屬性沒有默認(rèn)值,你必須為其指定值。

          3、作業(yè)存儲(chǔ)屬性:作業(yè)存儲(chǔ)部分的設(shè)置描述了在調(diào)度器實(shí)例的生命周期中,Job 和 Trigger 信息是如何被存儲(chǔ)的。把調(diào)度器信息存儲(chǔ)在內(nèi)存中非常的快也易于配置。當(dāng)調(diào)度器進(jìn)程一旦被終止,所有的 Job 和 Trigger 的狀態(tài)就丟失了。要使 Job 存儲(chǔ)在內(nèi)存中需通過設(shè)置 org.quartz.jobStrore.class 屬性為 org.quartz.simpl.RAMJobStore,在Cron Trigger 和“作業(yè)存儲(chǔ)和持久化”會(huì)用到的不同類型的作業(yè)存儲(chǔ)實(shí)現(xiàn)。

          4、其他插件屬性:org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin默認(rèn)時(shí), JobInitializationPlugin插件會(huì)在 classpath 中搜索名為 quartz_jobs.xml 的文件并從中加載 Job 和 Trigger 信息。其他插件后敘……

          quartz_jobs.xml 配置和詳解

          實(shí)例:簡(jiǎn)單觸發(fā)器


          1. <?xmlversion='1.0'encoding='utf-8'?>  

          2.   
          3. <quartz>  
          4.   
          5.   <job>  
          6.     <job-detail>  
          7.      <name>ScanDirectory</name>  
          8.      <group>DEFAULT</group>  
          9.      <description>  
          10.            A job that scans a directory for files   
          11.      </description>  
          12.      <job-class>  
          13.              org.cavaness.quartzbook.chapter3.ScanDirectoryJob   
          14.      </job-class>  
          15.      <volatility>false</volatility>  
          16.      <durability>false</durability>  
          17.      <recover>false</recover>  
          18.      <job-data-mapallows-transient-data="true">  
          19.          <entry>  
          20.          <key>SCAN_DIR</key>  
          21.          <value>c:"quartz-book"input</value>  
          22.        </entry>  
          23.      </job-data-map>  
          24.     </job-detail>  
          25.   
          26.     <trigger>  
          27.      <simple>  
          28.        <name>scanTrigger</name>  
          29.        <group>DEFAULT</group>  
          30.        <job-name>ScanDirectory</job-name>  
          31.        <job-group>DEFAULT</job-group>  
          32.        <start-time>2005-06-10 6:10:00 PM</start-time>  
          33.        <!-- repeat indefinitely every 10 seconds -->  
          34.        <repeat-count>-1</repeat-count>  
          35.        <repeat-interval>10000</repeat-interval>  
          36.      </simple>  
          37.     </trigger>  
          38.   
          39.   </job>  
          40. </quartz>

          我們添加了屬性 org.quartz.plugin.jobInitializer.fileName 并設(shè)置該屬性值為我們想要的文件名。這個(gè)文件名要對(duì) classloader 可見,也就是說要在 classpath 下。

          第三方包

          名稱 必須/備注 網(wǎng)址
          activation.jar 主要是 JavaMail 要用到 http://java.sun.com/products/javabeans/glasgow/jaf.html
          commons-beanutils.jar http://jakarta.apache.org/commons/beanutils
          commons-collections.jar http://jakarta.apache.org/commons/collections
          commons-dbcp-1.1.jar 是,假如用到數(shù)據(jù)庫作為作業(yè)存儲(chǔ) http://jakarta.apache.org/commons/dbcp
          commons-digester.jar 假如你使用了某些插件,就需要它
          commons-logging.jar http://jakarta.apache.org/commons/logging/
          commons-pool-1.1.jar
          http://jakarta.apache.org/commons/pool/
          javamail.jar 發(fā)送 e-mail 用 http://java.sun.com/products/javamail/
          jdbc2_0-stdext.jar 是,假如用到數(shù)據(jù)庫作為作業(yè)存儲(chǔ) http://java.sun.com/products/jdbc/
          jta.jar 是,假如用到數(shù)據(jù)庫作為作業(yè)存儲(chǔ) http://java.sun.com/products/jta/database
          quartz.jar Quart 框架核心包
          servlet.jar 假如使用了Servlet 容器,但容器中應(yīng)該存在 http://java.sun.com/products/servlet/
          log4j.jar 是,日志 http://logging.apache.org/

          posted on 2008-07-20 01:22 百科 閱讀(4778) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 凉城县| 沾化县| 西盟| 青冈县| 保康县| 绥中县| 双辽市| 北碚区| 通化县| 荥阳市| 松潘县| 社会| 舞钢市| 商南县| 房山区| 桂平市| 威信县| 伊金霍洛旗| 宜宾县| 来宾市| 洪江市| 岑溪市| 南靖县| 屯留县| 巍山| 城口县| 奉新县| 沈丘县| 肥东县| 沙田区| 泾源县| 合江县| 海安县| 元朗区| 湘潭市| 礼泉县| 出国| 怀远县| 北碚区| 夏河县| 资溪县|