//定时器服务注册
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();
}
java 定时器任务
最新推荐文章于 2022-09-21 22:07:55 发布