我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          Quartz初體驗

          Quartz是一個作業調度框架.
          具體說明請參考項目主頁
          http://www.opensymphony.com/quartz

          下載主頁:
          好的,速度開始我們的第一個Quartz程序吧.

          先建一個你需要安排計劃的類,注意此類必須實現Job接口.

          import java.util.Date;

          import org.quartz.Job;
          import org.quartz.JobExecutionContext;
          import org.quartz.JobExecutionException;

          /**
           * 調度作業類,必須實現Job接口
           * 
           * 
          @author zdw
           * 
           
          */

          public class StringTest implements Job
          {
              
          /**
               * 要執行的方法
               
          */

              
          public void execute(JobExecutionContext arg0) throws JobExecutionException
              
          {
                  System.out.println(
          "execute at " + new Date());
              }

          }

          調度控制類:

          import java.util.Date;

          import org.quartz.JobDetail;
          import org.quartz.Scheduler;
          import org.quartz.SchedulerException;
          import org.quartz.SchedulerFactory;
          import org.quartz.Trigger;
          import org.quartz.TriggerUtils;
          import org.quartz.impl.StdSchedulerFactory;

          /**
           * 
           * 
          @author zdw
           * 
           
          */

          public class QuartzTest
          {

              
          public static void main(String args[])
              
          {
                  
          // 得到可用客戶端處理調度程序的工廠
                  SchedulerFactory schedFact = new StdSchedulerFactory();
                  
          // 高度程序接口,控制JobDeail和Trigger
                  try
                  
          {
                      Scheduler sched 
          = schedFact.getScheduler();
                      
          // 表示給定工作類的詳細信息
                      JobDetail jobDetail = new JobDetail("myJob"null, StringTest.class);
                      
          // 觸發器
                      Trigger trigger = TriggerUtils.makeSecondlyTrigger();
                      
          // 設置開始時間,這時設置的是每一秒執行一次
                      trigger.setStartTime(TriggerUtils.getEvenSecondDateBefore(new Date()));
                      
          // 必須設置,不能為空
                      trigger.setName("firstTrigger");
                      
          // 為調度程序設置具體工作和觸發器
                      sched.scheduleJob(jobDetail, trigger);
                      
          // fire
                      sched.start();
                  }
           catch (SchedulerException e)
                  
          {
                      e.printStackTrace();
                  }

              }

          }
          運行一下輸出結果為:
          execute at Thu May 08 14:54:48 CST 2008
          execute at Thu May 
          08 14:54:49 CST 2008
          execute at Thu May 
          08 14:54:50 CST 2008
          execute at Thu May 
          08 14:54:51 CST 2008
          execute at Thu May 
          08 14:54:52 CST 2008
          顯然已經按我們的要求每隔一秒執行了一次方法.

          注意這個工程需要用到的jar有:
          quartz-all-1.6.1-RC1.jar
          commons
          -collections-3.2.jar
          commons
          -logging-1.1.jar
          這些jar包在你下載的quartz-1.6.1-RC1.zip都能找到.

          posted on 2008-05-08 15:01 々上善若水々 閱讀(835) 評論(0)  編輯  收藏 所屬分類: opensource

          主站蜘蛛池模板: 深州市| 清涧县| 慈利县| 大名县| 涞源县| 湖北省| 繁昌县| 宜阳县| 台南市| 太原市| 天柱县| 松江区| 陆川县| 江都市| 多伦县| 凤阳县| 乌兰浩特市| 阿克陶县| 南宫市| 太仆寺旗| 盖州市| 白河县| 老河口市| 诸城市| 宁阳县| 高雄县| 余庆县| 招远市| 平凉市| 蕲春县| 中阳县| 武穴市| 马关县| 安阳县| 富源县| 桦川县| 梅河口市| 民乐县| 临夏县| 鲜城| 隆尧县|