3178?1442652658

【任务】 抽取模板的改善 正常


侯翔添加于 2015-08-18 14:55

根据师兄的意思目前有两种策略:

1)采取轮询的方式来进行抽取,每次每隔一定的时间来启动相应的站点抽取进程,这样可以每次只跑几个抽取进程,极大的减少了抽取对内存的消耗。

2)从根本上改变现在的抽取模板,模板只设置一个程序入口,当数据库的数据有新增的时候启动抽取进程,不断的对各个表进行抽取,以此里改善整个抽取的对内存的消耗。

回复(2)
  • 3178?1442652658
    侯翔 8年前

    抽取模板优化进展: 1)采用了线程池的方式,线程池初始化为20个线程,线程池的好处可以控制系统中执行线程的数量,减少了创建于销毁线程的次数。 2)一概之前进程的重复加载spring配置文件的方式,之前的程序入口,每个进程开始时都必须重复加载一遍sping.xml 与mybatis-spring.xml。由于采用了spring的依赖注入,反复加载配置文件会导致一些不必要的poji类反复加载创建,浪费内存,将所有配置文件的加载都写入一个类中,所有的bean集中管理。 3)整体的逻辑还是按照师兄的意思修改,部分细节还在优化。 4)日志部分逻辑还在继续编写。

  • 3178?1442652658
    侯翔 8年前

    目前已经将抽取模板改成了多线程,具体实现如下: 1)将之前的每个站点一个进程的方式,改成了每个站点一个线程,修改原来每个站点读取数据的方式,不采用定时去访问数据库读取数据的方式,而是采用每次查看数据库中是否有数据新增,将新增的数据抽取完,该线程任务就结束。 2)主线程采用轮询的方式扫描每一张站点的爬取结果存储表,一旦站点的表中数据有新增的爬取量并且该站点的线程标志为false,则马上启动该站点的线程,同时将该线程的运行标记设置为true。 3)采用了线程池的方式。 目前的问题: 大致思路已经实现,在本机上也测试过,但是还是不稳定,目前还在完善当中

0?1470885445
登录后可添加回复
  • 当前状态 新增
  • 选定优先级 正常
  • 指派给 张方
  • 里程碑 --
  • 开始日期 2015-08-18
  • 结束日期
  • 预计工时(H) 0.00 小时
  • 完成度 0%
  • 关联Commit

© Copyright 2007~2021 国防科技大学Trustie团队 & IntelliDE 湘ICP备 17009477号

问题和建议
还能输入50个字符 提交

加入QQ群

关注微信APP


×