服务器启动ServletContextListener的contextInitialized方法被执行三次,天拉,怎么会这样.

xwjrun xwjrun 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
用ServletContextListener和Timer,TimerTask做了个定时发送邮件的功能.
在本地(windows)测试运行正常,但是移到服务器上(linux)就出现问题.
问题是:
容器自动重启以下,ServletContextListener的contextInitialized方法会被执行三次,也就是说时间会被出发三次.然而任务类TimerTask的子类就也同样被执行三次.
怎么会这样了?
请各位朋友们帮兄弟一把.找原因找了两天了.

public class ContextListner implements ServletContextListener {

private Timer timer=null;
public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
System.out.println(("初始化......"));
timer.schedule(new RemindEmailTimerTask(),60*1000,7*24*60*60*1000);//1000*60*60*24 一天 可以设置一个月执行一次
}

public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
System.out.println("结束。");
}

}


<listener>
<listener-class>mypage.com.ContextListner</listener-class>
</listener>
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
xwjrun
Java EE 67,535 成员 225,843 内容