<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>
    就這樣,只需三步,一個簡單的定時采集進程就搞定了
    主站蜘蛛池模板: 国产成人AV免费观看| 亚洲成色www久久网站夜月| 国产成+人+综合+亚洲专| 99视频在线免费| 亚洲人成在线影院| 日日麻批免费40分钟无码| 久久亚洲伊人中字综合精品| 国内永久免费crm系统z在线| 亚洲人成网站在线播放vr| 国产在线精品一区免费香蕉| 国产A在亚洲线播放| 一区二区免费视频| 亚洲日本在线免费观看| 国产免费久久精品99re丫y| 亚洲va久久久久| 欧洲精品免费一区二区三区| 国产精品久久亚洲一区二区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区| 男女猛烈xx00免费视频试看| 亚洲午夜无码AV毛片久久| 国产在线观看免费视频软件| 亚洲国产综合专区电影在线 | 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 永久免费AV无码国产网站| 亚洲中文精品久久久久久不卡| 免费观看男人免费桶女人视频| 免费的黄色网页在线免费观看| 国产成人亚洲精品狼色在线| 久久久久久免费一区二区三区| 亚洲最新中文字幕| 免费久久精品国产片香蕉| 免费一区二区无码东京热| 亚洲毛片免费观看| 国产自产拍精品视频免费看| 一级毛片视频免费| 少妇中文字幕乱码亚洲影视| 天堂在线免费观看中文版| 中文字幕免费在线视频| 亚洲av无码一区二区三区观看| 国产精品无码免费视频二三区 | 亚洲av永久无码嘿嘿嘿|