Java:Web應(yīng)用下實現(xiàn)定時任務(wù)的簡便方法

字號:

在WEB應(yīng)用下實現(xiàn)定時任務(wù)的簡便方法
    在web方式下,如果我們要實現(xiàn)定期執(zhí)行某些任務(wù)的話,除了用quartz等第三方開源工具外,我們可以使用Timer和TimeTask來完成指定的定時任務(wù):
    第一步:創(chuàng)建一個任務(wù)管理類,實現(xiàn)ServletContextListener 接口
    以下是引用片段:
    public class TaskManager implements ServletContextListener {
    /**
    * 每天的毫秒數(shù)
    */
    public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;
    /**
    * 一周內(nèi)的毫秒數(shù)
    */
    public static final long PERIOD_WEEK = PERIOD_DAY * 7;
    /**
    * 無延遲
    */
    public static final long NO_DELAY = 0;
    /**
    * 定時器
    */
    private Timer timer;
    /**
    * 在Web應(yīng)用啟動時初始化任務(wù)
    */
    public void contextInitialized(ServletContextEvent event) {
    //定義定時器
    timer = new Timer("數(shù)據(jù)庫表備份",true);
    //啟動備份任務(wù),每月(4個星期)執(zhí)行一次
    timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);
    // timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);
    }
    /**
    * 在Web應(yīng)用結(jié)束時停止任務(wù)
    */
    public void contextDestroyed(ServletContextEvent event) {
    timer.cancel(); // 定時器銷毀
    }
    }