【问题标题】:stormcrawler selenium duplicate processingStormcrawler 硒重复处理
【发布时间】:2018-08-28 22:01:22
【问题描述】:

我通过提供的导航过滤器插件使用带有 selenium 远程驱动程序协议的 Stormcrawler。如果我的导航过滤器执行了很长时间(url 被正确处理并在 mysql 数据库中将状态更新为“fetched”),爬虫会以某种方式从 mysql 表中获取相同的 url 以再次获取。所以状态更新发生在 url 再次在队列中之后。我可以配置什么参数来避免这种情况?我试图将所有组件设置为 threads= 1 并且它仍在发生。

【问题讨论】:

    标签: web-crawler stormcrawler


    【解决方案1】:

    这可能是由于 Storm 中的超时设置造成的。请参阅conf in archetype,它设置为 300 秒。在发出元组后经过这段时间后,元组将失败,并且它的 URL 从正在处理的 spout 的 URL 缓存中删除。因此,当 spout 再次查询 MySQL 时,URL 将沿着拓扑向下发送。元组失败并不会停止 URL 的处理,并且状态最终会如您所见那样得到更新。

    一种选择是将超时值设置为足够大,以便您在导航过滤器中执行的任何操作都有时间完成或更改您的逻辑,从而花费更少的时间。

    【讨论】:

      猜你喜欢
      • 2020-04-20
      • 1970-01-01
      • 2020-09-25
      • 2021-03-06
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多