1:listner加载Timer,定时执行任务
public class WxHandleListener implements ServletContextListener {
private Timer timer = null;
@Override
public void contextInitialized(ServletContextEvent sce) {
timer = new Timer(true);
// 一天的毫秒数
long daySpan = 24 * 60 * 60 * 1000;
// 规定的每天时间00:00:10运行
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd '00:00:10'");
// 首次运行时间
try {
Date startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date()));
// 如果今天的已经过了 首次运行时间就改为明天
if (System.currentTimeMillis() > startTime.getTime()) {
startTime = new Date(startTime.getTime() + daySpan);
}
timer.schedule(new MessageHandleTask(), startTime,daySpan);
} catch (ParseException e) {
e.printStackTrace();
}
}
2:定时任务类
import java.util.Calendar;
import java.util.Date;
import java.util.TimerTask;
import org.apache.log4j.Logger;
import com.google.gson.Gson;
public class MessageHandleTask extends TimerTask {
private static Logger logger = Logger.getLogger(MessageHandleTask.class);
private static Gson g = new Gson();
public MessageHandleTask() {
}
@Override
public void run() {
//执行业务操作
}
}