<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 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    J2EE定時采集程序

    Posted on 2009-04-08 09:44 ZhouFeng 閱讀(637) 評論(0)  編輯  收藏 所屬分類: 轉(zhuǎn)載Web開發(fā)
    最近因項目需要編寫一個定時采集程序,于是就到網(wǎng)上找了一下相關的資料,最后發(fā)現(xiàn)一個非常簡單的部署定時進程的方法——利用偵聽器和定時器。
    首先,編寫一個Servlet用于啟動定時器和進行任務調(diào)度,參考代碼如下:
    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(
    "已經(jīng)添加任務調(diào)度表");
        }

        
    public void contextDestroyed(ServletContextEvent event) {
            timer.cancel();
            System.out.println(
    "定時器銷毀");
        }
    }
    其中利用了定時器的java.util.Timer.schedule(TimerTask task, long delay, long period)方法,里面的參數(shù)依次為:任務類,延時(單位毫秒),周期(單位毫秒)。根據(jù)我的設定,每24小時運行一次。
    然后是任務調(diào)度類:
    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(
    "開始執(zhí)行指定任務");

                    
    /* Your Code */

                    isRunning 
    = false;
                    System.out.println(
    "指定任務執(zhí)行結(jié)束");
                }
            } 
    else {
                System.out.println(
    "上一次任務執(zhí)行還未結(jié)束");
            }
        }
    }
    其中C_SCHEDULE_HOUR為執(zhí)行任務的時段,根據(jù)我的要求是每天22點后才執(zhí)行我的采集程序。
    最后是配置偵聽器:
    在web.xml中添加以下代碼,當然Servlet名要換成真實的
    <listener>
        
    <listener-class>com.test.MyTimer</listener-class>
    </listener>
    就這樣,只需三步,一個簡單的定時采集進程就搞定了
    主站蜘蛛池模板: 亚洲乱亚洲乱妇无码麻豆| 在线观看的免费网站| 亚洲一区精品无码| 夜夜爽妓女8888视频免费观看| 免费a级毛片视频| 亚洲精品精华液一区二区 | 国产免费看JIZZ视频| 亚洲国产精品线观看不卡| ww在线观视频免费观看| 亚洲午夜精品在线| 在线免费观看中文字幕| 亚洲成aⅴ人片久青草影院按摩| 国产一级特黄高清免费大片| 日韩少妇内射免费播放| 亚洲一区二区三区国产精品| a级在线观看免费| 久久精品亚洲精品国产色婷| 在线观看免费人成视频色9| 亚洲国产精品无码久久| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲高清国产拍精品熟女| 免费在线观看黄色毛片| 中国在线观看免费的www| 色婷婷亚洲十月十月色天| 丁香花在线观看免费观看| 免费国产草莓视频在线观看黄| 国产成人精品日本亚洲专区61 | 桃子视频在线观看高清免费视频| 亚洲精品视频免费在线观看| 啦啦啦高清视频在线观看免费| 美女视频黄.免费网址| 亚洲国产精品福利片在线观看| 免费人成网站在线观看10分钟| 美女尿口扒开图片免费| 亚洲AV福利天堂一区二区三| 在线A级毛片无码免费真人| 一级黄色毛片免费看| 亚洲精品亚洲人成在线观看麻豆| 国产小视频免费观看| 亚洲国产精品日韩在线| 国产精品嫩草影院免费|