ServletContextListener问题

readzhangxy 2004-11-11 02:57:57
public class MyTask extends TimerTask {
private static final int C_SCHEDULE_HOUR = 9;
private static final int C_SCHEDULE_DAY = 11;
private static boolean isRunning = false;
private ServletContext context = null;
public void run() {
IDAO dao = DAOFactory.getInstance().getHBDAO();
Calendar cal = Calendar.getInstance();
if (!isRunning) {
if (C_SCHEDULE_DAY == cal.get(Calendar.DAY_OF_MONTH)) { //判断是否为11号
if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY)) { //判断是否为9点
isRunning = true;
context.log("开始执行");
......//代码
isRunning = false;
context.log("指定任务执行结束");
}
}
} else {
context.log("上一次任务执行还未结束");
}
}
}


public class ContextListener extends HttpServlet implements ServletContextListener {
private java.util.Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new java.util.Timer(true);
event.getServletContext().log("启动");
timer.schedule(new MyTask(event.getServletContext()),0,60*60*1000);
event.getServletContext().log("添加任务");
}
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
event.getServletContext().log("销毁");
}

}
为什么当我把日期设为11号系统时钟设定为9点时。不执行这个类是为什么啊???
...全文
178 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
readzhangxy 2004-11-15
  • 打赏
  • 举报
回复
timer.schedule(new MyTask(event.getServletContext()),0,60*60*1000);
各位高手这句是不是每过60*60*1000微秒执行一次啊????????改系统时间也不起作用对吗????????
kenny1979 2004-11-15
  • 打赏
  • 举报
回复
楼主的这个想法很有创意 我倒没这么试过, 不过 估计不行. 你要是对schedule方法有信心, 建议你还是把60*60*1000改成30*1000或者10*1000试试吧
readzhangxy 2004-11-15
  • 打赏
  • 举报
回复
怎么没人回答呢?
readzhangxy 2004-11-11
  • 打赏
  • 举报
回复
没人遇见过吗?
bs221cn 2004-11-11
  • 打赏
  • 举报
回复
up

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧