0

我在 Zen-cart 商店、PHP 5.2、apache2 上添加了一个 RSS 提要。该商店有大约 25.000 种产品,包括名称、描述、价格、图像等。

RSS 存储在缓存中以避免每次都运行查询,但即使这样,当检索 RSS 时服务器也会变慢,有时会因为超出最大执行时间(我已经设置 220 秒)而出现空白页。

有什么方法可以更好地处理大型 RSS 提要?我总是可以将它分成 2 或 3 个提要,但有些合作伙伴需要一个提要 URL 才能一次性检索所有产品。

4

5 回答 5

3

您可以设置一个 cron 以每隔 5、10、....分钟将 RSS 提要写入文件系统。这样,文件已经准备好,只需要在每次点击时打开而不是处理。

于 2011-01-05T19:07:51.517 回答
1

您不太可能会在一天中更改提要。
所以仅仅缓存是不够的,把它缓存为静态文件,每天通过 crontab 更新它。

并应用mod_deflate

AddOutputFilterByType DEFLATE application/rss+xml

基本上,不应该添加用于服务 RSS 请求的 php 层

于 2011-01-05T19:10:06.243 回答
0

没有理由从缓存中提供文件需要任何可观的服务器时间。您的缓存有问题。或者,您可能会在缓存陈旧时看到超时,在这种情况下,您需要通过计划的刷新来保持缓存的新鲜度,这样客户端就不会遇到陈旧的缓存。

最坏的情况是,将其缓存到文件系统并让 Apache 将其作为静态页面提供服务。如果您走这条路,请确保将新版本写入临时版本,然后将其重命名到位(您不想提供部分内容)。在 POSIX(类 Unix)系统上,在同一分区上重命名以替换文件是原子的。

于 2011-01-05T19:06:23.377 回答
0

理想情况下,如果您可以完全控制网络服务器,这将是使用MEMCACHE的最佳时机......

于 2011-01-05T19:09:07.520 回答
0

它似乎更多是一个内存问题。即使不计算,当你从缓存中检索它时,它也会存储在一个变量中,并且会占用大量内存。

编写静态文件或增加服务器的内存。

于 2011-01-05T19:11:43.027 回答