3

我正在试验一些 RSS 阅读器/提取器,我现在正在写。除了一件事,一切都很顺利。这太慢了。

让我解释:

  1. 我从数据库中获取 RSS 提要列表
  2. 我从这个列表中迭代每个提要,用 cURL 打开它并用 SimpleXMLElement 解析它
  3. 我用给定的关键字检查这些提要的描述和标题,看看它是否已经在数据库中。
  4. 如果不是,我将其添加到数据库中。

现在我正在循环浏览 11 个提要。这给了我 18 秒的页面加载时间。这是不更新数据库。当发现一些新文章时,它会上升到 22 秒(在 localhost 上)。

在实时网络服务器上,我的猜测是这会更慢,并且可能超出 php 设置的限制。

所以我的问题是,你对提高速度有什么建议......如果这不可能,那么将其分解为多次执行的最佳方法是什么,比如一次说 2 个提要?我想让它全部自动化,不想在每 2 个提要后点击一次。

希望大家能给我一些好的建议!

如果您想要一些代码示例,请告诉我并粘贴一些

谢谢!

4

2 回答 2

0

这里有一些建议。

  • 首先,将数据获取和处理与向用户显示网页分开。您可以通过设置在 CRON 作业中执行或作为守护程序存在(即连续运行)的脚本来放置获取和处理部分。
  • 其次,您可以在提要提取之间设置一些合理的时间限制,这样您的脚本就不必每次都遍历每个提要。
  • 第三,您可能应该考虑使用提要解析库,例如 MagpieRSS,而不是 SimpleXML。
于 2012-11-26T12:31:59.097 回答
0

我建议您使用 cronjob 或守护程序,通过运行 php 脚本自动将提要与数据库同步。从用户的角度来看,这将消除延迟。像每小时或任何适合您的方式运行它。

虽然首先,您应该尝试找出该过程的哪些部分实际上很慢。没有代码,很难判断出什么问题。

可能的问题可能是:

  • 远程服务器(存储提要)很慢
  • 您本地服务器的互联网连接
  • 您的服务器硬件
  • 显然代码
于 2012-11-26T12:20:42.290 回答