我有一个应用程序可以在网上查看几个RSS来源。
轮询其他网络服务器时的礼仪是什么?投票的频率等等?
最佳做法是什么?
答案 0 :(得分:37)
使用HTTP缓存。发送Etag
和LastModified
标头。认可304 Not modified
回复。这样可以节省大量带宽。此外,一些脚本识别LastModified
标题并仅返回部分内容(即只有两个或三个最新项目,而不是全部30个左右)。
不要从支持RPC Ping(或其他PUSH服务,例如PubSubHubbub)的服务中轮询RSS。即如果您从服务接收PUSH通知,则不必在标准时间间隔内轮询数据 - 每天执行一次以检查机制是否仍然有效(ping可以被禁用,重新配置,损坏等等) )。这样,您只能在收到通知时获取RSS,而不是每小时左右。
检查TTL(在RSS中)或缓存控制标头(ATOM中的Expires
),并且在资源到期之前不要提取。
尝试适应每个RSS Feed中新项目的频率。如果在过去一周内,特定Feed中只有两个更新,请不要每天多次获取。 AFAIR Google阅读器可以做到这一点。
在夜间或网站流量较低的其他时间降低费率。
最后,每小时做一次。 ;)
答案 1 :(得分:5)
谷歌的FeedFetcher声称它每小时调查rss的费用不到一次。
来自:http://code.google.com/apis/ajaxfeeds/documentation/
Feed Crawl Frequency
由于Google AJAX Feed API使用Feedfetcher,因此来自AJAX Feed API的Feed数据可能并不总是最新的。 Google Feed抓取工具(“Feedfetcher”)每小时检索大多数网站的Feed少于一次。一些经常更新的网站可能会更频繁地刷新。
答案 2 :(得分:3)
好吧,我会去那里,忽略那些说“谷歌说,我们这样做”的帖子,然后说:经常需要这样做。
RSS可以帮助您了解最新信息。如果Feed每小时发布10个项目但只显示5个项目,那么您将错过其中的5个项目并且Feed无法满足其目的。你可能根本不打它。
当然,你不能用服务器敲击请求,但如果他们发布的内容足以让你每分钟请求一次,我就不会看到匹配这个速率是不合理的。
答案 3 :(得分:2)
Once an hour,如果你想通过经验法则(但链接解释了一些更好的选项)。
答案 4 :(得分:1)
每小时一次是我听过的频率。
答案 5 :(得分:0)
Rss中有一个ttl设置,所以你应该只在TTL到期时进行轮询。
但是我想如果他们没有把问题放在他们的问题中,那么你应该像每小时那样进行一次调查
答案 6 :(得分:0)
答案 7 :(得分:0)
我注意到twitter使用(自定义)X-RateLimit-Remaining
和X-RateLimit-Limit
标头(在HTTP响应中)来指示Atom订阅源的最大授权轮询数。遗憾的是,他们没有使用标准Expires
字段(过去30年设置:P)我猜他们Cache-Control: no-cache
的广告也排除了在{{1}}中定义的通用的heuritic到期时间。 RFC 2616(第13.2。*节)。更令人遗憾的是,Atom似乎没有提供任何标准化的方法来告诉我们建议多长时间轮询一次Feed。