3213?1442652660

【任务】 improved task generator v2 正常


LiZX添加于 2015-08-20 21:03

今天大家提出的问题给了我们很大的提醒,搞成多线程的确实是太不方便了。所以我们又提出了一种新的设计,避免多线程的复杂性。请王老师审阅我们的这种思路是否可行?谢谢老师


主要思路是不再针对每个站点都生成一套线程/进程,而是在一个进程里面对所有的站点进行轮询处理。因为task的生成和下载是分开的,所以task 生成的过程是很快的,不用担心这种方式会耽误事;储存的时候也不用每个站点一个表了,可以都放在一个表里。


task生成分成两个模块,如图1和图2,图1是listurl Taskgenerator的大致流程图,图2是detailurl Taskgenerator的大致流程图。


在图1中,程序每隔一段时间就会进行一次循环处理(这个时间间隔由最快的站点的更新速度来确定),每次循环处理中,先去读取本次要处理那些站点(每次都去读,方便新增站点和去除站点),对这些要爬取的每一个站点先判断爬取模式,针对不同的模式做不同的处理,镜像模式的时候,生成一些task就行,不能一直处理,处理一会就等到下一轮,增量模式的时候结合站点的更新周期和上一次更新的时间以及现在的时间判断本次循环是否对该站点进行更新。生成的task都发送到rabbit中,然后对操作记录进行持久化。


在图2中,程序也是在一个循环中,首先读取要处理哪些站点的,然后去数据库中看是否有新的listpage到来,如果有就取出,根据页面来判断应该用哪一个配置文件来对其进行抽取,如果抽取成功了就发送task,如果失败了,就进行报警,此时可以很方便进行更改。


请问王老师这种思路可行吗?谢谢

回复(6)
  • 929?1442652660
    甘谊昂 8年前

    主题A new architecture design 变更为 improved task generator v2

  • 3213?1442652660
    LiZX 8年前

    listUrlGenerator's prototype is done, tomorrow I will deal with detailUrlGenerator's

  • 929?1442652660
    甘谊昂 8年前

    sounds good,you can give a prototype

  • 3213?1442652660
    LiZX 8年前

    附件 图1.png 已添加

    附件 图2.png 已添加

    描述 已更新。 (查看差别)

  • 3213?1442652660
    LiZX 8年前

    附件 已删除 (图1.png)

  • 3213?1442652660
    LiZX 8年前

    附件 已删除 (图2.png)

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

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

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

加入QQ群

关注微信APP


×