package com.test.task;
import java.util.Date;
import java.util.TimerTask;
public class MyTask extends TimerTask {
@Override
public void run() {
System.out.println("call at " + (new Date()));
}
}
package com.test.task;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* Application Lifecycle Listener implementation class MyListener
*
*/
public class MyListener implements ServletContextListener {
private Timer timer = null;
/**
* Default constructor.
*/
public MyListener() {
// TODO Auto-generated constructor stub
}
/**
* @see ServletContextListener#contextInitialized(ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
timer = new Timer(true);
// repeat invoke the task
// timer.schedule(new MyTask(), 0,5*1000);
//Get the Date corresponding to 11:01:00 pm today.
// task will invoke in 11:58
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 11);
calendar.set(Calendar.MINUTE, 58);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();
Calendar calendar1 = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 11);
calendar.set(Calendar.MINUTE, 57);
calendar.set(Calendar.SECOND, 0);
Date time1 = calendar.getTime();
timer = new Timer();
timer.schedule(new MyTask(), time);
timer.schedule(new MyTask(), time1);
}
/**
* @see ServletContextListener#contextDestroyed(ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
timer.cancel();
}
}
<listener>
<listener-class>com.test.task.MyListener</listener-class>
</listener>
http://bakcom.iteye.com/blog/1618721