<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定時(shí)采集程序

    Posted on 2009-04-08 09:44 ZhouFeng 閱讀(651) 評(píng)論(0)  編輯  收藏 所屬分類: 轉(zhuǎn)載Web開發(fā)
    最近因項(xiàng)目需要編寫一個(gè)定時(shí)采集程序,于是就到網(wǎng)上找了一下相關(guān)的資料,最后發(fā)現(xiàn)一個(gè)非常簡單的部署定時(shí)進(jìn)程的方法——利用偵聽器和定時(shí)器。
    首先,編寫一個(gè)Servlet用于啟動(dòng)定時(shí)器和進(jìn)行任務(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(
    "定時(shí)器已啟動(dòng)");
            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(
    "定時(shí)器銷毀");
        }
    }
    其中利用了定時(shí)器的java.util.Timer.schedule(TimerTask task, long delay, long period)方法,里面的參數(shù)依次為:任務(wù)類,延時(shí)(單位毫秒),周期(單位毫秒)。根據(jù)我的設(shè)定,每24小時(shí)運(yùn)行一次。
    然后是任務(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ù)的時(shí)段,根據(jù)我的要求是每天22點(diǎn)后才執(zhí)行我的采集程序。
    最后是配置偵聽器:
    在web.xml中添加以下代碼,當(dāng)然Servlet名要換成真實(shí)的
    <listener>
        
    <listener-class>com.test.MyTimer</listener-class>
    </listener>
    就這樣,只需三步,一個(gè)簡單的定時(shí)采集進(jìn)程就搞定了
    主站蜘蛛池模板: 亚洲成a∨人片在无码2023| 8090在线观看免费观看| 猫咪社区免费资源在线观看| 亚洲成AV人片在线播放无码| 国产无限免费观看黄网站| 亚洲国产成人爱av在线播放| 老司机午夜性生免费福利| 成人国产mv免费视频| 亚洲AV日韩AV一区二区三曲| 在线精品免费视频无码的| 亚洲AV无码一区二区三区网址| 日韩免费电影在线观看| 日韩成人精品日本亚洲| 免费大黄网站在线观看| 精品无码一级毛片免费视频观看 | 成人免费ā片在线观看| 国产AV无码专区亚洲AV手机麻豆| 特级做A爰片毛片免费看无码| 亚洲AV无码成人精品区在线观看| 88xx成人永久免费观看| 色在线亚洲视频www| 韩国18福利视频免费观看| 特级做a爰片毛片免费看| a在线免费观看视频| 老色鬼久久亚洲AV综合| 久久久久国产精品免费免费搜索| 日韩亚洲人成网站| 亚洲欭美日韩颜射在线二| 免费无码午夜福利片| 亚洲AV无码国产精品麻豆天美 | 无码乱人伦一区二区亚洲一| 1000部夫妻午夜免费| 久久久久亚洲AV无码去区首| 区三区激情福利综合中文字幕在线一区亚洲视频1| 亚洲成a人不卡在线观看| 日韩在线天堂免费观看| 一个人免费视频观看在线www| 亚洲精品国产精品国自产网站 | 久青草视频在线观看免费| 亚洲第一页在线视频| 免费一级黄色毛片|