<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日韩AV鸥美在线观看| 亚洲乱码无限2021芒果| 日本免费人成视频在线观看| 激情五月亚洲色图| 国产亚洲?V无码?V男人的天堂| 18成禁人视频免费网站| 综合偷自拍亚洲乱中文字幕| 亚洲日本va中文字幕久久| 精品熟女少妇AV免费观看| 精品多毛少妇人妻AV免费久久| 亚洲第一成年人网站| 亚洲精品tv久久久久久久久久| 91精品全国免费观看含羞草| 国产精品亚洲一区二区三区| 久久久久亚洲av无码尤物| 国产禁女女网站免费看| 久久中文字幕免费视频| 毛片亚洲AV无码精品国产午夜| 亚洲电影一区二区三区| 四虎永久免费地址在线网站| 亚洲高清免费在线观看| 少妇亚洲免费精品| 一级成人a做片免费| 亚洲成a人片毛片在线| 国产午夜亚洲精品午夜鲁丝片| 人妻视频一区二区三区免费| 最近中文字幕大全免费版在线| 亚洲欧美国产欧美色欲| 亚洲最大成人网色| 中文字幕不卡亚洲 | 亚洲国产成人久久精品app| 免费人成网站7777视频| 插B内射18免费视频| 99久9在线|免费| 91福利免费网站在线观看| 美女黄频a美女大全免费皮| 亚洲日本乱码卡2卡3卡新区| 亚洲国产人成在线观看69网站| 亚洲欧洲日产国码一级毛片| 国产一区二区三区无码免费| 91免费精品国自产拍在线不卡|