java 定时器任务

来源:互联网 发布:mac os xshell 编辑:程序博客网 时间:2024/06/05 10:15
//定时器服务注册public class MailConstant {//注册邮件发送服务public static Timer emailTimer = null;//注册短信发送服务public static Timer messageTimer = null;//用于具体业务中的全局数据public static int isRun;   }/** * 定时器任务制定,执行 * @param tag: * 0.在指定的时间里,执行指定的任务; * 1.在指定的时间里,按照指定的延迟,重复执行指定任务; * 2.从指定的延迟后,执行指定任务; * 3.从指定的延迟后,按照指定的延迟,重复执行指定的任务。 *              * @param mydate:指定的执行时间。只有在tag等于0、1才需要指定。             * @param delay: 延迟执行时间,毫秒数。只有在tag等于1、3才需要指定。 * @param period:间隔执行时间,毫秒数。只有在tag等于4才需要指定。 */public void start(int tag) {  //延迟发送时间long delay  = 1000;long period = 1000;Date mydate = new Date();if(tag == 0){MailConstant.emailTimer.schedule(new DefineTimerTask(), mydate);}else if(tag == 1){MailConstant.emailTimer.schedule(new DefineTimerTask(), mydate, period);}else if(tag == 2){MailConstant.emailTimer.schedule(new DefineTimerTask(),delay);}else if(tag == 3){MailConstant.emailTimer.schedule(new DefineTimerTask(),delay,period);}else{System.out.println("Error:输入的定时器参数无效!");}  }//执行的定时器任务 private class DefineTimerTask extends TimerTask {      //定时器处理业务        public void run() {          if(MailConstant.isRun == 1){//具体业务处理方法emailsSend("");            System.out.println("----------------- 执行定时器任务时间:" + System.currentTimeMillis());         }else{        System.out.println("----------------- 执行定时器任务侦听:" + System.currentTimeMillis());         }        }}//定时器开关 if("start".equals(status)){MailConstant.isRun = 1;MailConstant.emailTimer = new Timer();new SendEmails(" ").start(1);}else if("end".equals(status)){MailConstant.isRun = 0;MailConstant.emailTimer.cancel();}

原创粉丝点击