posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            在web方式下,如果我們要實現(xiàn)定期執(zhí)行某些任務的話,除了用quartz等第三方開源工具外,我們可以使用Timer和TimeTask來完成指定的定時任務。專業(yè)的開源工具可參考Quartz:http://www.opensymphony.com/quartz/

          第一步:創(chuàng)建一個任務具體操作類,實現(xiàn)ServletContextListener 接口 MyListener.java

          package yixun.wap.tools;

          import java.util.Timer;
          import javax.servlet.ServletContextEvent;
          import javax.servlet.ServletContextListener;
          public class MyListener implements ServletContextListener {
              
          private Timer timer = null;
              
          public void contextInitialized(ServletContextEvent event) {
                  timer 
          = new Timer(true);//true 指定為后臺線程
                  
          // 設置任務計劃,啟動和間隔時間
                  timer.schedule(new MyTask(), 086400000);
          //可寫多個定時任務
              }


              
          public void contextDestroyed(ServletContextEvent event) {
                  timer.cancel();
              }


          }
          還有好幾種任務調度
          timer.schedule(task, time);   
          // time為Date類型:在指定時間執(zhí)行一次。   
           
          timer.schedule(task, firstTime, period);   
          // firstTime為Date類型,period為long   
          // 從firstTime時刻開始,每隔period毫秒執(zhí)行一次。   
           
          timer.schedule(task, delay)   
          // delay 為long類型:從現(xiàn)在起過delay毫秒執(zhí)行一次   
           
          timer.schedule(task, delay, period)   
          // delay為long,period為long:從現(xiàn)在起過delay毫秒以后,每隔period   
          // 毫秒執(zhí)行一次。


          第二步:創(chuàng)建一個時間任務類 MyTask.java

          package yixun.wap.tools;

          import java.util.TimerTask;

          public class MyTask extends TimerTask {

            
          public void run() {
              
          // System.out.println("call at " + (new Date()));
              
          // TODO 此處添加具體任務代碼
            }


          }

          第三步:在web.xml中添加一個監(jiān)聽器

          <listener>

              
          <listener-class>
                  yixun.wap.tools.MyListener
              
          </listener-class>
              
          <description>要定期執(zhí)行的任務</description>
          </listener> 


          通過配置監(jiān)聽器,那么在web服務器啟動的時候,任務也被啟動,并且會周期性的執(zhí)行
          參考文章:http://www.aygfsteel.com/fastunit/archive/2008/02/15/180116.html

          主站蜘蛛池模板: 垫江县| 阿荣旗| 崇信县| 肇庆市| 马山县| 兴隆县| 彭泽县| 东莞市| 浑源县| 怀安县| 建瓯市| 饶平县| 徐闻县| 西峡县| 嘉禾县| 灵山县| 南华县| 成武县| 邢台市| 博野县| 西和县| 长丰县| 容城县| 得荣县| 五大连池市| 齐齐哈尔市| 鲁甸县| 汤原县| 石阡县| 府谷县| 通城县| 沙雅县| 郓城县| 蕉岭县| 曲松县| 乐东| 会宁县| 宽城| 安康市| 万宁市| 巴青县|