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


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值