自动数据库更新实时网站


Automatic database updates for real-time website

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

我能够编写一个PHP脚本来获取XML数据并更新数据库,但是我不知道如何安排这个脚本在没有任何用户启动的情况下每秒运行一次。到目前为止,我的研究已经指向我cron,但我的主机不提供它,它似乎不打算如此频繁的更新。我也不知道PHP是不是最好的方法。

任何想法或指针将非常感激,我不介意研究具体的实现,但我甚至不知道如何有效地谷歌我的问题在这一点上。

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

最简单的方法是使用外部服务,如 http://www.webcron.org/online-cron

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

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

你也可能需要对你的PHP做一些改动。

也查看http://php.net/manual/en/function.ignore-user-abort.php

希望有所帮助

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

你也可以考虑一个锁定方案,以确保在另一个线程已经在执行更新的过程中不会启动新的更新