Java Blog From WeiChunHua

          Java

          常用鏈接

          統計

          develop

          news

          最新評論

          quartz 詳解

                   最近在開發的過程中,經常要使用系統自動清零的操作,比如說:系統在給定的時間跟客戶發送電子郵件,在指定的時間段內執行某些操作等等,如果我們只是人工去操作的話不但步驟非常的麻煩而且覺得這是一個工作量非常大的任務,有了quartz框架以后我們所有的任務多可以交給它去做,程序員唯一要做的只是編寫代碼并配置一下程序就OK了,這樣大大提高了開發速度和工作效率.配置步驟如下:
          1、編寫quartz.properties文件:代碼如下:
          #============================================================================
          # Configure Main Scheduler Properties 
          #============================================================================
          org.quartz.scheduler.instanceName = QuartzScheduler
          org.quartz.scheduler.instanceId = AUTO
          #org.quartz.scheduler.rmi.export = false
          #org.quartz.scheduler.rmi.proxy = false
          #============================================================================
          # Configure ThreadPool 
          #============================================================================
          org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
          org.quartz.threadPool.threadCount = 4
          org.quartz.threadPool.threadPriority = 5
          #============================================================================
          # Configure Plugins
          #============================================================================
          #org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
          org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
          org.quartz.plugin.jobInitializer.fileName = /scheduler/quartz_job.xml
          org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
          org.quartz.plugin.jobInitializer.failOnFileNotFound = true
          org.quartz.plugin.jobInitializer.scanInterval = 10
          org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
          org.quartz.plugin.shutdownhook.cleanShutdown = true
          #org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
          2、編寫quartz_job.xml
          <?xml version='1.0' encoding='utf-8'?>
          <quartz>
          <job>
             <job-detail>
               <name>test</name>
               <group>DEFAULT</group>
               <description>testJobhere</description>
               <job-class>scheduler.TestJob</job-class>
               <job-data-map allows-transient-data="true">
                <entry>
                 <key>name</key>
                 <value>test</value>
                </entry>
              </job-data-map>
            </job-detail>
             <trigger>
                        <cron>
                             <name>testCron</name>
                             <group>DEFAULT</group>
                             <job-name>test</job-name>
                            <job-group>DEFALUT</job-group>
                            <!--x/?  x表示間斷啟動時間  ?表示執行間隔時間  13啟動時間-->
                            <cron-expression>0 1/2 23 * * ?</cron-expression>
                            <!--每月1號0點執行
                             <cron-expression>0 1 0 1 1-12 ?</cron-expression>
                             -->
                        </cron>
                  </trigger>
          </job>
          3、編寫java代碼進行測試:
          import org.quartz.Job;
          import org.quartz.JobExecutionContext;
          import org.quartz.JobExecutionException;
          public class ZeroCount implements Job{
              public void execute(JobExecutionContext context) throws JobExecutionException
           {
              String name = context.getJobDetail().getJobDataMap().getString("name");
          System.out.println(name);

          }
          }
          出下以下結果表示配置成功:
          test
          4、此步驟是最后一步也是最重要的一步,只要加入如下代碼的到/WEB-INF/web.xml文件中在指定的時間內就會執行系統調度.
          <servlet>
              <servlet-name>QuartzInitializer</servlet-name>
              <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
              <init-param>
               <param-name>config-file</param-name>
               <param-value>/quartz.properties</param-value>
              </init-param>
              <load-on-startup>1</load-on-startup>
              <init-param>
               <param-name>shutdown-on-unload</param-name>
               <param-value>true</param-value>
              </init-param>
              <init-param>
               <param-name>start-scheduler-on-load</param-name>
               <param-value>true</param-value>
              </init-param>
          </servlet>

          參考網站:http://www.iocblog.net/project/quartz.html

          posted on 2008-11-21 14:38 sunny spring 閱讀(4515) 評論(2)  編輯  收藏 所屬分類: javaee

          評論

          # re: quartz 詳解 2008-11-21 17:06 隔葉黃鶯

          <!--每月1號0點1分執行
          <cron-expression>0 1 0 1 * ?</cron-expression>   回復  更多評論   

          # re: quartz 詳解 2008-11-24 08:29 congdepeng

          隔葉黃鶯 是quartz 的高手啊 我看過他翻譯的文章  回復  更多評論   

          主站蜘蛛池模板: 寿阳县| 荃湾区| 皮山县| 上思县| 四平市| 彭泽县| 墨玉县| 化隆| 平谷区| 开鲁县| 罗城| 邓州市| 无极县| 涪陵区| 吉安市| 灵丘县| 张北县| 普格县| 沛县| 谢通门县| 阳信县| 库尔勒市| 舒城县| 呈贡县| 吴忠市| 曲沃县| 宁都县| 亳州市| 栾川县| 龙南县| 焦作市| 永丰县| 莱阳市| 诸城市| 宁波市| 鹿泉市| 卢龙县| 安宁市| 南漳县| 南皮县| 汉中市|