Zend_Cache vs cronjob

时间:2010-02-09 00:56:48

标签: php zend-framework

我正在研究我的学士学位项目,我正试图找出一个简单的困境。

这是一个足球俱乐部的网站。有一些信息将从国家足球协会的网站(基本上是联赛表和比赛历史)中提取。我正在尝试确定存储此获取数据的最佳方法。我正在考虑两种可能性:

1)我将设置一个cron作业,每小时运行一次。它将调用一个脚本来获取联盟表和网站上的所有其他数据,并将它们存储在一个平面文件中。

2)我将使用Zend_Cache对象执行相同操作,但数据将存储在缓存文件中。缓存也会每小时更新一次。

哪种方法更好?

2 个答案:

答案 0 :(得分:2)

我认为答案可以在为什么中找到你要缓存的文件。是在外部服务器上放置最小负载,只需经常更新缓存,或者是保持页面加载速度,因为文件需要很长时间才能下载或处理?

如果只是为了尊重其他服务器,并且提取/处理页面对最终用户来说只需要明显的时间,那么我只需要实现Zend_Cache。这很简单,你不必担心一个脚本下载页面,然后另一个脚本加载下载的数据(加上cron作业)。

如果还需要缓存,因为获取/处理页面很重要,我仍然使用Zend_Cache;但是,我将缓存设置为每2小时到期,并设置一个cron作业(或类似的东西)来每小时手动更新缓存。当然,这会增加两个脚本的复杂性(或至少添加一个请求标志来手动刷新缓存),但如果cron作业失败,你仍然可以。

答案 1 :(得分:1)

好吧,如果你选择1,它会增加复杂性,因为你也必须使用cron(而不是cron过于复杂)然后你必须在使用它之前测试数据文件是否完整,或者从移动文件中移动文件deall下载并解析为正确格式后的临时位置。

如果您使用两个,它会消除1中的大部分,除非现在在缓存已经死亡的请求中,您必须等待下载/解析。

我认为1是更好的选择,但2更容易实现,更不容易出错。这说明在cron脚本中实现一些事情来防止我描述的否定是相当微不足道的。所以我可能会选择1。