首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

TimeTask执行任务,会连续执行两次。求各位救小弟我下!

2013-07-20 
TimeTask执行任务,会连续执行两次。求各位救我下!!java网站,用的struts2,tomcat。后台用TimeTask执行自动推

TimeTask执行任务,会连续执行两次。求各位救我下!!
java网站,用的struts2,tomcat。后台用TimeTask执行自动推送任务。昨天发现这个自动任务居然每次执行会连续运行两次。

查了下是不是这个任务在那里启动的两次,也没有。麻烦各位帮我看下。

启动服务的代码:


Timer timer=new Timer();
Calendar target=Calendar.getInstance();
timer.schedule(new         BadDayAutoPushTask(),target.getTime(),5*60*1000/*24*60*60*1000!!!!!!!!!!!!!!!部署时要打开。*/);



id, sendno,开始操作时间,结束操作时间, 操作状态, 用户数, 

1, 1, 2013-06-23 11:30:00, 2013-06-23 11:30:25, 1, 39, 
2, 2, 2013-06-23 11:30:00, 2013-06-23 11:30:24, 1, 39, 
3, 3, 2013-06-24 11:30:05, 2013-06-24 11:30:36, 1, 41, 
4, 4, 2013-06-24 11:30:05, 2013-06-24 11:30:36, 1, 41, 
5, 5, 2013-06-25 11:30:00, 2013-06-25 11:30:44, 1, 72, 
6, 6, 2013-06-25 11:30:00, 2013-06-25 11:30:44, 1, 72, 
javaservlet?TimeTask Java Tomcat Struts
[解决办法]
看看问题是不是在BadDayAutoPushTask的实现上。
[解决办法]
你在 BadDayAutoPushTask() 的任务里面本身也要控制好只有当 BadDayAutoPushTask() 全部执行完了,才允许执行下一次调度。

例如:可以加入 synchronized () 来控制,不管有多少个线程调用,或不管是不是任务计划设置错了,你都应该让程序必须一个一个来执行。
[解决办法]
这种问题debug很容易解决,时间不应该浪费在论坛求解上。

热点排行