Timer动态管理

来源:互联网 发布:登山杖淘宝 编辑:程序博客网 时间:2024/06/05 16:01

首先要创建动态timer管理类,用于调度管理TimerTask任务

import java.util.Date;import java.util.List;import java.util.Timer;import org.apache.log4j.Logger;/** * 任务调度管理器 */public class DynamicTaskManager {    private static Logger logger = Logger.getLogger(DynamicTaskManager.class);      static{        taskManager = new DynamicTaskManager();    }        /**     * 单例对象     */    private static DynamicTaskManager taskManager = null;    /**     * 时间调度对象     */    private static Timer timer = new Timer();    /**     * 任务     */    private static DynamicTimerTask task = null;    public static DynamicTaskManager getInstance() {        if (taskManager == null) {            taskManager = new DynamicTaskManager();        }        return taskManager;    }        /**     * 启动定时器     * jar 监控     * others cpu disk 监控     */    @SuppressWarnings("unchecked")    public void start() {        // 启动任务            startTask();        }        /**     * 构建定时任务     */    public DynamicTimerTask startTask(){            Date date  = new Date();            long period = 10000;            // 如果当前时间超过了设定时间,会立即执行一次            task = new DynamicTimerTask();            timer.schedule(task, date, period);             return task;    }        /**     * 清空timer     */    public void clean(DynamicTimerTask task) {        if (task != null) {            task.cancel();        }        timer.purge();    }    /**     * 停止任务     */    public void stop(DynamicTimerTask task) {        logger.info("--------stoping---------");        clean(task);        logger.info("---------stopped----------");    }    }

动态TimerTask

import java.util.Date;import java.util.TimerTask;import javax.management.AttributeNotFoundException;import javax.management.MBeanException;/**   * 可动态修改的任务timer  */  public class DynamicTimerTask extends TimerTask {           public DynamicTimerTask(){    }        @Override      public void run() {         System.out.println("被调用!!")    }      }  



原创粉丝点击