java 定时器任务

//定时器服务注册
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();
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值