java timer定时器每次执行会重复执行2次任务

kingwenjie kingwenjie 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
web.xml监听配置

<!-- 定时监听 -->
<listener>
<listener-class>com.numenzq.mc.service.impl.TimerListener</listener-class>
</listener>


TimerListener类

public class TimerListener implements ServletContextListener {
private Timer timer;
private TimerTaskSelf task;
/**
* @see 销毁
*/
@Override
public void contextDestroyed(ServletContextEvent arg0) {
timer.cancel();
}

/**
* @see 创建
*/
@Override
public void contextInitialized(ServletContextEvent event) {
timer = new java.util.Timer(true);
task = new TimerTaskSelf(event.getServletContext());
//执行任务指定间隔
timer.scheduleAtFixedRate(task, 0, 1000*60*50);
}
}


自定义任务类

package com.numenzq.mc.service.impl;

import java.util.Calendar;
import java.util.TimerTask;

import javax.servlet.ServletContext;

import org.apache.log4j.Logger;

public class TimerTaskSelf extends TimerTask {
private ServletContext context;
public TimerTaskSelf(ServletContext context){
this.context = context;
}
@Override
public void run() {
System.out.println(DateUtils.format(DateUtils.currentDate(),"yyyy-MM-dd HH:mm:ss") + " web监听结合定时器应用每次执行2次的问题...");
}
}


本地tomcat-7.0.12启动, 定时器执行没问题。
部署到服务器,linux,启动tomcat后,每次执行的时候会重复2次执行任务.
(间隔50分钟执行一次,可每到50分钟就会打印2条信息.)
望高手,帮忙找下原因. 坐等..

...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
kingwenjie
Java 51,407 成员 86,127 内容