<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 2, comments - 27, trackbacks - 0, articles - 60
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    J2EE定時采集程序

    Posted on 2009-04-08 09:44 ZhouFeng 閱讀(651) 評論(0)  編輯  收藏 所屬分類: 轉載Web開發
    最近因項目需要編寫一個定時采集程序,于是就到網上找了一下相關的資料,最后發現一個非常簡單的部署定時進程的方法——利用偵聽器和定時器。
    首先,編寫一個Servlet用于啟動定時器和進行任務調度,參考代碼如下:
    import javax.servlet.ServletContextEvent;

    public class MyTimer extends javax.servlet.http.HttpServlet implements
            javax.servlet.ServletContextListener {
        
    // private static final long serialVersionUID = 1L;

        
    private java.util.Timer timer = null;

        
    public void contextInitialized(ServletContextEvent event) {
            timer 
    = new java.util.Timer(true);
            System.out.println(
    "定時器已啟動");
            timer.schedule(
    new MyTimerTask(), 024 * 60 * 60 * 1000);
            System.out.println(
    "已經添加任務調度表");
        }

        
    public void contextDestroyed(ServletContextEvent event) {
            timer.cancel();
            System.out.println(
    "定時器銷毀");
        }
    }
    其中利用了定時器的java.util.Timer.schedule(TimerTask task, long delay, long period)方法,里面的參數依次為:任務類,延時(單位毫秒),周期(單位毫秒)。根據我的設定,每24小時運行一次。
    然后是任務調度類:
    import java.util.Calendar;
    import java.util.TimerTask;

    public class MyTimerTask extends TimerTask {
        
    private static final int C_SCHEDULE_HOUR = 22;
        
    private static boolean isRunning = false;

        @Override
        
    public void run() {
            Calendar cal 
    = Calendar.getInstance();
            
    if (!isRunning) {
                
    if (C_SCHEDULE_HOUR < cal.get(Calendar.HOUR_OF_DAY)) {
                    isRunning 
    = true;
                    System.out.println(
    "開始執行指定任務");

                    
    /* Your Code */

                    isRunning 
    = false;
                    System.out.println(
    "指定任務執行結束");
                }
            } 
    else {
                System.out.println(
    "上一次任務執行還未結束");
            }
        }
    }
    其中C_SCHEDULE_HOUR為執行任務的時段,根據我的要求是每天22點后才執行我的采集程序。
    最后是配置偵聽器:
    在web.xml中添加以下代碼,當然Servlet名要換成真實的
    <listener>
        
    <listener-class>com.test.MyTimer</listener-class>
    </listener>
    就這樣,只需三步,一個簡單的定時采集進程就搞定了
    主站蜘蛛池模板: 阿v免费在线观看| 亚洲aⅴ无码专区在线观看春色| 国产精品hd免费观看| 国产成人免费a在线视频色戒| 久久综合久久综合亚洲| 好爽…又高潮了毛片免费看| 亚洲香蕉久久一区二区三区四区| 蜜臀98精品国产免费观看| 1区1区3区4区产品亚洲| 四虎成年永久免费网站| 亚洲av永久综合在线观看尤物| 91精品国产免费久久久久久青草| 亚洲成aⅴ人片在线观| 无码人妻一区二区三区免费| 亚洲熟女精品中文字幕| 国产免费人成视频在线观看| 青青草97国产精品免费观看| 国产亚洲精品免费视频播放| 日韩精品无码免费专区午夜| 亚洲邪恶天堂影院在线观看| 五月婷婷综合免费| 国产亚洲一卡2卡3卡4卡新区| 亚洲一区无码精品色| 免费网站看av片| 亚洲成a人片在线不卡| 国产成人高清精品免费鸭子| 亚洲精品视频免费观看| 亚洲av女电影网| 无人在线观看完整免费版视频| 黄人成a动漫片免费网站| 亚洲色成人中文字幕网站| 91热成人精品国产免费| 国产精品亚洲专区无码WEB | a级毛片免费观看网站| 亚洲AV无码精品色午夜在线观看| 永久免费在线观看视频| 亚洲AV无码AV日韩AV网站| 国产亚洲真人做受在线观看| 麻豆一区二区免费播放网站| 一级做a爱过程免费视| 亚洲成a人片7777|