嗨,我需要对我的研究项目提出建议。
我正在构建一个数据库,该数据库读取由谷歌警报生成的 RSS 提要,并将结果保存在数据库中以供以后分类。我正在使用 Wordpress 和 pods 框架来处理数据库和 UI。
我有 4 个带有自己的表的对象(豆荚):
- 资源,它是从警报提要中获取的站点数据。
- 来源,它是站点的域,例如 stackoverflow.com
- 提要,带有警报查询和 rss url。
- 主题,其他对象归类的主要主题。
程序流程很快是这样的:
- 对于每个主题,请获取提要。
- 对于每个提要加载 rss xml。
- 对于 rss 中的每个条目 URL,如果比上次检查更新,则控制域是否已保存在 Sources 对象中。
- 如果源存在,请检查 URL 是否保存在 Resource 对象中。
- 如果资源存在(即我们已经拥有此 URL 的数据),则将当前主题和循环提要添加到资源(如果不存在)。
- 如果资源不存在,则将资源与一些数据以及当前主题和提要一起保存。
- 如果源不存在,则将源与当前主题一起保存。
这样,我将拥有大量带有链接提要和主题的资源,以及带有主题的相关资源。
问题是数据增长得非常快,一个月内我已经达到了1500多条资源记录。
所以现在每次我运行脚本时,因为对于每个新条目,它都必须将它与所有以前的条目进行比较,脚本会自动挂起。
所以我需要一种方法来提高效率或避免拆分过程的问题。
由于脚本是通过 Ajax 调用的,我认为这个流程可以工作:
- 向服务器询问主题/提要结构。
- 对于每个主题中的每个提要,要求服务器加载 XML 并将其传回有一个数组。
- 然后在前端为每个条目发送一个比较和保存调用。
当然,缺点是我会接到很多电话。
我听说的另一种技术是在服务器进程期间刷新数据,因为我知道这应该会欺骗服务器时间限制以重置。但我不确定我是否理解得很好。
当然,最好的解决方案是使用更具体的代码而不是两个通用抽象层来重建所有内容。但是我真的来不及了!