0

我正在尝试构建一个网站,该网站将显示来自另一个网站上的 XML 提要的实时(或接近它)数据。我知道如何使用 jquery、AJAX 和 PHP 定期(每 1 到 3 秒)从 MySQL 数据库中提取数据,我遇到的问题是弄清楚如何使用新的 XML 更新数据库本身每 1 或 2 秒数据。我还需要保留所有数据的历史记录。

我能够编写一个 PHP 脚本来获取 XML 数据并更新数据库就好了,但我不知道如何安排这个脚本每秒运行一次而不由任何用户启动。到目前为止,我的研究已将我指向 cron,但我的主机不提供它,而且它似乎不适合如此频繁的更新。我也不知道 PHP 是否是最好的方法。

任何想法或指示将不胜感激,我不介意研究实现的细节,但我什至不知道如何在这一点上有效地搜索我的问题。

4

2 回答 2

0

与其安排如此频繁的更新,不如考虑存储上次更新时间的时间戳,并仅在您所需的时间间隔已过时进行更新。

如果另一个线程已经在执行更新,您也可以考虑使用锁定方案来确保不会启动新的更新。

于 2013-05-29T23:07:55.170 回答
0

这个请求有多种解决方案。

最简单的一种是使用外部服务,例如

http://www.webcron.org/online-cron

它可以每分钟运行一次。因此,您可以获得尽可能多的数据,并在数据插入数据库时​​缓存数据。但是如果你不想花钱,你应该去别的地方。

另一种方法是创建一个 PHP 递归函数,一个一旦开始就永远不会结束的循环。因此,直到循环在您的目标网站上找到数据,它才会继续运行。这意味着您只需启动一次循环。只要确保不要回显任何内容,否则一旦您离开页面,循环就会停止。

此外,您可能需要对 PHP 进行一些技巧。

还要检查http://php.net/manual/en/function.ignore-user-abort.php

希望能帮助到你

于 2013-05-29T22:29:51.810 回答