Java Blog From WeiChunHua

          Java

          常用鏈接

          統(tǒng)計(jì)

          develop

          news

          最新評(píng)論

          quartz 詳解

                   最近在開(kāi)發(fā)的過(guò)程中,經(jīng)常要使用系統(tǒng)自動(dòng)清零的操作,比如說(shuō):系統(tǒng)在給定的時(shí)間跟客戶發(fā)送電子郵件,在指定的時(shí)間段內(nèi)執(zhí)行某些操作等等,如果我們只是人工去操作的話不但步驟非常的麻煩而且覺(jué)得這是一個(gè)工作量非常大的任務(wù),有了quartz框架以后我們所有的任務(wù)多可以交給它去做,程序員唯一要做的只是編寫(xiě)代碼并配置一下程序就OK了,這樣大大提高了開(kāi)發(fā)速度和工作效率.配置步驟如下:
          1、編寫(xiě)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、編寫(xiě)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、編寫(xiě)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 的高手啊 我看過(guò)他翻譯的文章  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 元谋县| 元氏县| 台安县| 右玉县| 万源市| 陇西县| 固原市| 正蓝旗| 依安县| 泰州市| 威海市| 武陟县| 溧水县| 宜川县| 鹿邑县| 巴林左旗| 若尔盖县| 葫芦岛市| 姚安县| 荥阳市| 静宁县| 延吉市| 遵义县| 彰化县| 二连浩特市| 玛沁县| 乐亭县| 绥中县| 绍兴市| 宁波市| 闽侯县| 肥西县| 汤原县| 扎兰屯市| 牙克石市| 塔河县| 鹿泉市| 青铜峡市| 封丘县| 吉安县| 寿光市|