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

wxd851213 2013-06-25 02:08:38
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,
...全文
342 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxd851213 2013-07-17
  • 打赏
  • 举报
回复
已经解决了,问题出在tomcat的配置上。在server.xml的里发布应用时用了context,还配置的path,造成它重复发布应用了。
wxd851213 2013-06-25
  • 打赏
  • 举报
回复
我debug过。在timer的start代码里断,启动的时候确实只运行了一次。但是不知道怎么就会连着执行两次。
SWQQ- 2013-06-25
  • 打赏
  • 举报
回复
这种问题debug很容易解决,时间不应该浪费在论坛求解上。
wxd851213 2013-06-25
  • 打赏
  • 举报
回复
上一贴用错表情了。我以为它在抓脸。
wxd851213 2013-06-25
  • 打赏
  • 举报
回复
在正式服务器上,我的任务是一天执行一次的。每次执行大约几秒钟。也会出现两次连续的情况。应该不会是两次任务挤在一起吧????
global_biz 2013-06-25
  • 打赏
  • 举报
回复
你在 BadDayAutoPushTask() 的任务里面本身也要控制好只有当 BadDayAutoPushTask() 全部执行完了,才允许执行下一次调度。 例如:可以加入 synchronized () 来控制,不管有多少个线程调用,或不管是不是任务计划设置错了,你都应该让程序必须一个一个来执行。
ghostkngiht 2013-06-25
  • 打赏
  • 举报
回复
看看问题是不是在BadDayAutoPushTask的实现上。

81,123

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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