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 的高手啊 我看過他翻譯的文章  回復  更多評論   

          主站蜘蛛池模板: 南开区| 名山县| 东莞市| 昆明市| 福贡县| 霍林郭勒市| 宁南县| 福海县| 扬州市| 望都县| 鄂尔多斯市| 兴隆县| 潞城市| 沾益县| 马龙县| 丰城市| 肇源县| 焉耆| 都安| 新干县| 奈曼旗| 揭东县| 邢台县| 崇仁县| 元氏县| 上犹县| 周至县| 台东市| 亳州市| 洪湖市| 从江县| 合水县| 专栏| 台北市| 建平县| 承德县| 台中县| 尼玛县| 大悟县| 五河县| 佛教|