`
hylong05
  • 浏览: 24405 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

java 定时器示例

阅读更多
1.在web.xml中加入:
<listener>
        <listener-class>com.workplatform.listener.MyListener</listener-class>
</listener>

2.监听类MyListener
package com.workplatform.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.workplatform.action.TestTimer;


public class MyListener implements ServletContextListener{//必须实现该接口

public void contextDestroyed(ServletContextEvent arg0) {
  System.out.println("监听器销毁~~~~~~");
 
}
public void contextInitialized(ServletContextEvent arg0) {
  System.out.println("监听器初始化~~~~~~");
  TestTimer testTimer = new TestTimer();
  testTimer.initEXE();//执行方法
}
}

3.TestTimer:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;

public class TestTimer {
public void initEXE(){
ChkScheduleTask   task   =   new   ChkScheduleTask();   
Timer   myTimer   =   new   Timer();  
System.out.println("定时器创建成功!");  
//第二个参数为执行前等待时间,第三个参数为执行周期,以ms为单位  
//myTimer.schedule(task,1000,24*60*60*1000); 
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf1.format(new Date());
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd hh:mm");
Date startDate = new Date();
try {
  startDate = sdf2.parse(dateStr+" 14:52");
} catch (ParseException e) {
  e.printStackTrace();
}
//表示在服务启动的当天14:52分开始执行,然后每24小时执行一次
//如果服务启动时已大于startDate时间,则立即执行
myTimer.schedule(task,startDate,24*60*60*1000);  
}
}

4.定时执行的方法类ChkScheduleTask:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;

public class ChkScheduleTask extends TimerTask {//必须继承TimerTask
public void run(){ //重写run方法
  SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  System.out.println("-------------时间:"+sdf2+" 开始执行..." );   
   }

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics