皮皮左耳

          evoleht

           

          Scheduler定時器

          首先添加所需要的類包:quartz-1.5.2.jar,quartz-all-1.5.2.jar,quartz-jboss-1.5.2.jar 
          //設置定時作業
           public void startScheduler(HttpServletRequest requests)throws SchedulerException{
            try{
             
          //建立作業調度器
             Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
             //判斷作業調度內是否有作業,如果有將其刪除
             
          if (!scheduler.isShutdown()) {
                          scheduler.deleteJob("ReceiveOnTimed", Scheduler.DEFAULT_GROUP);
                      }
             //刪除調度器的作業后,新建一個我們現在要完成的作業,該作業所需要的類是ReceiveJobd.class,作業名字是ReceiveOnTimes,所屬分組是Scheduler.DEFAULT_GROUP
                     
          JobDetail jobDetail = new JobDetail("ReceiveOnTimed",
                                                          Scheduler.DEFAULT_GROUP,
                                                          ReceiveJobd.class);

                      int m = ips.length;
                      int n = tablenames.length;
                      //向作業內設置要傳入的參數
                     
          jobDetail.getJobDataMap().put("scheduler", scheduler);
                      jobDetail.getJobDataMap().put("ipLength", m);
                      jobDetail.getJobDataMap().put("tablenameLength", n);
                      jobDetail.getJobDataMap().put("wcx",wc);
                      for (int i = 0; i < m; i++) {
                          jobDetail.getJobDataMap().put("ip" + i, ips[i]);
                          for (int j = 0; j < n; j++) {
                              jobDetail.getJobDataMap().put("tablename" + j, tablenames[j]);
                          }
                      }
                     
          //建立觸發器,判斷何時觸發該作業,參數為觸發器的名稱,觸發器分組,作業名稱,作業分組,時間設定
                     
          Trigger trigger = new CronTrigger("ReceiverOnTimeTriggerd",
                                                        scheduler.DEFAULT_GROUP,
                                                        "ReceiveOnTimed",
                                                        scheduler.DEFAULT_GROUP, time);
                     
          //將作業和觸發器添加到調度器
                     
          scheduler.scheduleJob(jobDetail, trigger);
                     
          //按照設置開始調度
                      scheduler.start();
            }catch(Exception e){
             e.printStackTrace();
            }
           }
           
          具體作業類的處理:
           package com.bodhiya.schsystem.business;

          import org.quartz.Job;
          import org.quartz.JobDataMap;
          import org.quartz.JobExecutionContext;
          import org.quartz.JobExecutionException;
          import org.quartz.Scheduler;
          import org.springframework.web.context.WebApplicationContext;

          public class ReceiveJobd implements Job{
           public void ReceiveJobd(){
           }
           
          //作業具體實現的功能
           public void
          execute(JobExecutionContext context) throws
              JobExecutionException
          {
               try {
                     
                      //建立JobDataMap對象,用來接收傳遞的參數
                     
          JobDataMap dataMap = context.getMergedJobDataMap();
                      int ipLength = dataMap.getInt("ipLength");
                      int tablenameLength = dataMap.getInt("tablenameLength");
                     
          WebApplicationContext wc=(WebApplicationContext)dataMap.get("wcx");
                     
                      String ip = "";
                      String tablename = "";
                      for (int i = 0; i < ipLength; i++) {
                          ip = dataMap.getString("ip" + i);
                          for (int j = 0; j < tablenameLength; j++) {
                              tablename = dataMap.getString("tablename" + j);
                              ExchangeAccess ea=new ExchangeAccess(ip,tablename,wc);
                               
          //啟動線程
                              ea.start();
                          }
                      }
                     
          Scheduler scheduler = (Scheduler) dataMap.get("scheduler");
                      scheduler.deleteJob("ReceiveOnTimed", Scheduler.DEFAULT_GROUP);
                  } catch (Exception ex) {
                      ex.printStackTrace();
                  }
           }
          }

          posted on 2010-08-11 18:40 皮卡諾 閱讀(316) 評論(0)  編輯  收藏 所屬分類: java


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 乐业县| 牙克石市| 论坛| 石河子市| 卢氏县| 安宁市| 巴林左旗| 高阳县| 桂阳县| 永仁县| 海淀区| 桓台县| 唐河县| 平乐县| 望城县| 石河子市| 海淀区| 兴海县| 温泉县| 南皮县| 淳化县| 富平县| 沂源县| 古交市| 永德县| 新乡县| 读书| 定安县| 依兰县| 泸西县| 新余市| 西宁市| 富锦市| 大理市| 新乐市| 竹山县| 舟曲县| 宜城市| 新宁县| 陆川县| 华蓥市|