后台服务器定时线程(java.util.Timer)做数据抽取和统计相关问题

qq343445708 2012-09-20 02:58:24
一、环境:
1、首先现在有一个采集平台,平均5分钟采集一次数据,并将相关数据放到采集平台下的数据库。这个采集平台估计有5000+个采集点,也就是说采集一次会有5000+个记录入库,一天入库记录就会有150W条数据以上入库。
2、我现在需要做一个应用平台,做数据统计和实时监控。
3、我需要在tomcat启动时启动一个定时器(Timer),在每天凌晨2点对采集平台的数据库前一天的数据进行抽取,并作出各种统计任务。

二、问题:
1、我在展现实时监控是,需要去采集数据库拿到每个采集点的最新一次采集数据,我用select t.* from (select * from original_data_plc_em order by id desc) t group by t.station_id 这个语句或者近似的语句,都会产生比较大的延迟,数据库是mysql,这个该怎么优化呢?
2、定时数据抽取和统计我打算就用一个timer启动一个任务组(就是一些列方法了),这样做可行吗?
3、如果上面可行,那当其中一个任务失败时,这里容错机制该如何来做呢。

希望做过相关设计的大虾给点宝贵的建议,小弟不胜感激!!
...全文
257 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
安特矮油 2012-09-21
  • 打赏
  • 举报
回复
1.5000个采集点,那么我估计你的统计的也需要多线程,但是现在我担心的是5分钟内你是否能把5000个采集点的信息取完,所以建议你采集的信息是带有时间的,那么你在启动统计的时候,给定一个时间,去获取这个时间以前最近的一次采集活动的数据。这样可能会更好一些。

2.根据采集点创建Task对象,至于对象要怎么封装就看你自己了。如果出现异常则把这个Task对象放进异常任务堆栈以备后续处理。
qq343445708 2012-09-21
  • 打赏
  • 举报
回复
没有人吗???

67,516

社区成员

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

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