java定时器

1、InitListener.java
package com.listener;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/**
 * 系统启动时的监听类 初始化系统数据
 * 
 * @author jhoneder
 * 
 */
public class InitListener implements ServletContextListener {
 public void contextDestroyed(ServletContextEvent arg0) {
  // TODO Auto-generated method stub
  // context销毁时,销毁初始化数据
 }
 public void contextInitialized(ServletContextEvent event) {
  // TODO Auto-generated method stub
  try {
   goTimmer();
  } catch (Exception e) {
   System.out.println("失败:" + e.getMessage());
  }
 }
 private void goTimer() {
  Timer timmerTask = new Timer();
  Calendar calEnviron = Calendar.getInstance();
  // 每天的02:00.am开始执行
  calEnviron.set(Calendar.HOUR_OF_DAY, 2);
  calEnviron.set(Calendar.MINUTE, 00);
  // date为制定时间
  Date dateSetter = new Date();
  dateSetter = calEnviron.getTime();
  // nowDate为当前时间
  Date nowDateSetter = new Date();
  // 所得时间差为,距现在待触发时间的间隔
  long intervalEnviron = dateSetter.getTime() - nowDateSetter.getTime();
  if (intervalEnviron < 0) {
   calEnviron.add(Calendar.DAY_OF_MONTH, 1);
   dateSetter = calEnviron.getTime();
   intervalEnviron = dateSetter.getTime() - nowDateSetter.getTime();
  }
  // 每24小时执行一次
  timmerTask.schedule(new UseTimer(timmerTask), intervalEnviron, 1 * 1000 * 60 * 60 * 24);
 }
}
2、UseTimer.java
package com.listener;
import java.util.Timer;
import java.util.TimerTask;
/**
 * 被调用执行类
 * 
 * @author Administrator
 * 
 */
public class UseTimer extends TimerTask {
 Timer timer = new Timer();
 public UseTimer(Timer timer) {
  this.timer = timer;
 }
 /*
  * 被调用具体的方法
  */
 public void run() {
  System.out.println("开始具体执行!");
 }
}

3、web.xml配置

 <listener>
  <listener-class>
   com.InitListener
  </listener-class>
 </listener>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值