Java Blog From WeiChunHua

          Java

          導(dǎo)航

          <2008年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          留言簿(1)

          隨筆分類

          隨筆檔案

          相冊(cè)

          閱讀排行榜

          評(píng)論排行榜

          常用鏈接

          統(tǒng)計(jì)

          develop

          news

          最新評(píng)論

          quartz 詳解

                   最近在開發(fā)的過程中,經(jīng)常要使用系統(tǒng)自動(dòng)清零的操作,比如說:系統(tǒng)在給定的時(shí)間跟客戶發(fā)送電子郵件,在指定的時(shí)間段內(nèi)執(zhí)行某些操作等等,如果我們只是人工去操作的話不但步驟非常的麻煩而且覺得這是一個(gè)工作量非常大的任務(wù),有了quartz框架以后我們所有的任務(wù)多可以交給它去做,程序員唯一要做的只是編寫代碼并配置一下程序就OK了,這樣大大提高了開發(fā)速度和工作效率.配置步驟如下:
          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表示間斷啟動(dòng)時(shí)間  ?表示執(zhí)行間隔時(shí)間  13啟動(dòng)時(shí)間-->
                            <cron-expression>0 1/2 23 * * ?</cron-expression>
                            <!--每月1號(hào)0點(diǎn)執(zhí)行
                             <cron-expression>0 1 0 1 1-12 ?</cron-expression>
                             -->
                        </cron>
                  </trigger>
          </job>
          3、編寫java代碼進(jìn)行測(cè)試:
          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);

          }
          }
          出下以下結(jié)果表示配置成功:
          test
          4、此步驟是最后一步也是最重要的一步,只要加入如下代碼的到/WEB-INF/web.xml文件中在指定的時(shí)間內(nèi)就會(huì)執(zhí)行系統(tǒng)調(diào)度.
          <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>

          參考網(wǎng)站:http://www.iocblog.net/project/quartz.html

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

          評(píng)論

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

          <!--每月1號(hào)0點(diǎn)1分執(zhí)行
          <cron-expression>0 1 0 1 * ?</cron-expression>   回復(fù)  更多評(píng)論   

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

          隔葉黃鶯 是quartz 的高手啊 我看過他翻譯的文章  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 五峰| 环江| 乌海市| 宜州市| 佛学| 西宁市| 永川市| 奉新县| 霍州市| 博湖县| 宜章县| 汽车| 驻马店市| 安顺市| 肥乡县| 潼南县| 桐梓县| 贵定县| 噶尔县| 油尖旺区| 龙泉市| 晋中市| 鞍山市| 泰顺县| 鄂伦春自治旗| 耿马| 施秉县| 婺源县| 墨江| 高陵县| 全南县| 宽城| 田林县| 丽水市| 宁强县| 交口县| 亳州市| 六盘水市| 正宁县| 社旗县| 涪陵区|