java每天定时任务

来源:互联网 发布:vmware nat 端口转发 编辑:程序博客网 时间:2024/06/06 13:04

第一个类:


import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;/** * 系统启动时的监听类 初始化系统数据 *  * @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 {  System.out.println("初始化监听...");  goTimer();  System.out.println("初始化完毕");  } 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); }}


第二个类:


import java.util.Timer;import java.util.TimerTask;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import com.tcsoft.license.service.ApplicationService;import com.tcsoft.license.service.impl.ApplicationServiceImpl;/** * 被调用执行类 *  * @author Administrator *  */public class UseTimer extends TimerTask { Timer timer = new Timer();  public UseTimer(){  }  public UseTimer(Timer timer) {  this.timer = timer; }  public Timer getTimer() {return timer;}public void setTimer(Timer timer) {this.timer = timer;}/*  * 被调用具体的方法  */ public void run() { System.out.println("执行的具体任务");  }}

在web.xml中配置:


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




0 0