您的位置:首页 > 其它

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

2013-08-09 17:00 169 查看
将不同的业务继承任务,定时器执行的时候只需要执行一个任务即可。

 

创建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

<servlet name='alarm' servlet-class='test.TestAlarm'>

<run-at>:00, :15, :30, :45</run-at>

</servlet>

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

<servlet name='alarm' servlet-class='test.TestAlarm'>

<run-at>16:30,20:00</run-at>

</servlet>

 

第二种方式:

在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;
}
}


 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: