WEB.XML中加载定时器的配置方式

将不同的业务继承任务,定时器执行的时候只需要执行一个任务即可。

 

创建servlet,重写init(),service(),destroy()方法,初始化创建 并且启动定时器。

private Timer timer1 = null;

public void init(){

timer1=new Timer().schedule(new TimerTask(){
   
   public void run() {
     //执行task
   }
  },开始时间,间隔时间);

}

service()什么也不干

 

destroy销毁定时器

public void destroy() {

        super.destroy();

        if(timer1!=null){

             timer1.cancel();

         }

 }

 

配置WEB.XML:

第一种方式:

设置每15分钟运行的Servlet

:00, :15, :30, :45

设置每天16:30和20:00运行的Servlet

16:30,20:00

 

第二种方式:

在servlet配置中增加 < load-on-startup >555< /load-on-startup >  这个数字越高,优先级越低,负数表示不自动加载

 

//以下例子通过定时器改变另一个定时器的延迟执行的时间

public class test {
	public static void main(String[] args) {
		/*String ss="cmsIm/chatlog";
		System.out.println(File.separator);
		ss=ss.replaceAll("\\/","\\"+File.separator);
		System.out.println(ss);*/
		final Date firstDate=new Date();
		A a=new A();
		//计算延迟时间的定时器
		new Timer().schedule(a,firstDate,1000*60);
		
		//执行任务的定时器
		new Timer().schedule(new TimerTask(){
			public void run() {
				System.out.println("执行任务!"+A.delay);
			}
		},firstDate,A.delay);
	}
}

class A extends TimerTask{
	public static long delay=1000*10;
	public void run(){
		delay+=1000;
	}
}


 

 

 

你可能感兴趣的:(java)