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

来源:互联网 发布:仿卷皮淘宝客源码 编辑:程序博客网 时间:2024/05/21 01:43

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

 

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


 

 

 

原创粉丝点击