<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)上找了一下相關(guān)的資料,最后發(fā)現(xiàn)一個非常簡單的部署定時進程的方法——利用偵聽器和定時器。
    首先,編寫一個Servlet用于啟動定時器和進行任務(wù)調(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)添加任務(wù)調(diào)度表");
        }

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

                    
    /* Your Code */

                    isRunning 
    = false;
                    System.out.println(
    "指定任務(wù)執(zhí)行結(jié)束");
                }
            } 
    else {
                System.out.println(
    "上一次任務(wù)執(zhí)行還未結(jié)束");
            }
        }
    }
    其中C_SCHEDULE_HOUR為執(zhí)行任務(wù)的時段,根據(jù)我的要求是每天22點后才執(zhí)行我的采集程序。
    最后是配置偵聽器:
    在web.xml中添加以下代碼,當(dāng)然Servlet名要換成真實的
    <listener>
        
    <listener-class>com.test.MyTimer</listener-class>
    </listener>
    就這樣,只需三步,一個簡單的定時采集進程就搞定了
    主站蜘蛛池模板: 亚洲精品无码成人片在线观看| 日韩精品在线免费观看| 免费无码A片一区二三区| 中文字幕亚洲综合久久2| 精品国产麻豆免费人成网站| 国产亚洲视频在线播放| 国产福利电影一区二区三区,免费久久久久久久精 | 白白国产永久免费视频| 亚洲男人的天堂网站| 国产精品极品美女免费观看| 亚洲AV成人无码久久WWW| 亚洲国产精品人人做人人爽| 在线看片免费人成视频福利| 亚洲AV本道一区二区三区四区| 久久国产免费观看精品3| 亚洲国产成人资源在线软件| 毛片免费观看网址| 免费在线观看自拍性爱视频| 亚洲精品少妇30p| 精品国产免费人成电影在线观看| 亚洲最大中文字幕无码网站| 一级毛片直播亚洲| 中文字幕在线视频免费| 亚洲一区二区三区夜色| 午夜免费福利网站| 永久免费无码网站在线观看个| 亚洲精品午夜国产VA久久成人| 最近中文字幕大全免费视频| 亚洲精品乱码久久久久久蜜桃图片 | 91天堂素人精品系列全集亚洲| 中文字幕无码不卡免费视频 | 亚洲六月丁香六月婷婷蜜芽 | 亚洲av伊人久久综合密臀性色| 日本妇人成熟免费中文字幕| 阿v视频免费在线观看| 亚洲精品美女久久久久99| 毛色毛片免费观看| 成在人线av无码免费高潮水| 亚洲国产精品成人综合色在线婷婷 | 国产小视频免费观看| 亚洲精品免费视频|