我正在通过提供的导航过滤器插件使用stormcrawler和selenium远程驱动程序协议。如果我的导航过滤器执行了很长时间(url被正确处理并在mysql数据库中更新状态为"fetched“),crawler不知何故会从mysql表中拾取相同的url并再次获取。所以状态更新是在url再次进入队列之后发生的。我可以配置什么参数来避免这种情况?我尝试将所有组件设置为threads= 1,但它仍然在发生。
发布于 2018-08-31 20:53:31
这可能是由于Storm中的超时设置造成的。请参阅将其设置为300秒的conf in archetype。在发出元组后的这段时间内,元组将失败,并且其URL将从spout的URL缓存中删除。因此,当spout再次查询MySQL时,该URL将沿拓扑向下发送。但是,元组失败并不会停止URL的处理,并且状态最终会根据您的注意进行更新。
一种选择是将超时值设置得足够大,这样无论您在导航筛选器中做什么,都有时间完成或更改您的逻辑,以便花费更少的时间。
https://stackoverflow.com/questions/52066773
复制相似问题