2009-06-02 113 views
26

我有一個應用程序,在Web上輪詢幾個RSS源。政策輪詢rss

什麼是禮儀時輪詢其他的Web服務器。多頻繁輪詢等?

什麼是最佳實踐?

回答

36
  1. 利用HTTP緩存。發送EtagLastModified標題。確認304 Not modified響應。這樣你可以節省很多帶寬。此外,某些腳本會識別LastModified標題並僅返回部分內容(即僅返回兩個或三個最新項目,而不是全部30個)。

  2. 請勿從支持RPC Ping(或其他PUSH服務,例如PubSubHubbub)的服務輪詢RSS。即如果您收到來自服務的PUSH通知,則不必在標準時間間隔內輪詢數據 - 每天進行一次,以檢查機制是否仍然有效(ping可以被禁用,重新配置,損壞等) )。這樣,您只能在接收通知時獲取RSS,而不是每隔一小時左右。

  3. 檢查TTL(在RSS中)或緩存控制標頭(ATOM中的Expires),並且在資源到期之前不要獲取。

  4. 嘗試適應每個單RSS源新項目的頻率。如果在過去的一週內,特定Feed中只有兩次更新,請不要每天更換一次。AFAIR谷歌閱讀器做到這一點。

  5. 降低您的網站流量較低時的夜間或其他時間的價格。

  6. 最後,每小時做一次。 ;)

1

一小時是我聽說過的頻率。

5

谷歌的Feedfetcher聲稱調查RSS訂閱高於每小時一次略顯不足。

來源:http://code.google.com/apis/ajaxfeeds/documentation/

飼料抓取頻率

隨着谷歌AJAX供稿API使用Feedfetcher會,飼料數據從AJAX供稿API可能並不總是最新的。 Google提要抓取工具(「Feedfetcher」)每小時檢索大多數網站的提要不到一次。一些頻繁更新的網站可能會更頻繁地刷新。

+0

+1僅供參考 – cgp 2009-06-02 14:16:36

+0

由於code.google.com不再存在,因此鏈接已死亡。截至2016年10月19日,文檔仍支持:https://support.google.com/webmasters/answer/178852?hl = zh_CN – lordoku 2016-10-19 22:27:43

2

Once an hour,如果你想通過經驗法則(但鏈接解釋了一些更好的選擇)。

+0

+1(僅供參考) – cgp 2009-06-02 14:16:33

0

RSS具有TTL設置在裏面所以真的,你應該只當TTL到期輪詢。

但我想,如果他們不把一個在它自己的問題,您應查詢類似每小時一次

3

嗯,我要去那裏,無視說「谷歌說的職位,我們會這樣做「,並且說:儘可能經常實際需要。

RSS有沒有讓你最新的。如果Feed每小時發佈1​​0個項目,但只顯示5個項目,則會錯過其中的5個項目,並且該Feed未能達到其目的。你可能不會碰到它。

當然,你不能敲擊服務器請求,但如果他們發佈足以讓你請求一分鐘一次,我看不出它是如何不合理的匹配率。

+0

您會注意到Google參考資料還指出他們對頻繁更新的Feed使用更高的費率。 – 2009-06-02 14:20:38

0

這不是一個完整的答案,而是尋找推送警報。

The RSS blog表示最佳做法是要求weblogs.com瞭解更改的博客。

還有一些,呃,喧譁,約pubsub,一種訂閱推動有一些動力的警報的方式。

0

我注意到,twitter使用(自定義)X-RateLimit-RemainingX-RateLimit-Limit標頭(在HTTP響應中)來指示Atom訂閱源的授權輪詢的最大數量。可惜他們沒有使用標準的Expires字段(過去30年設置爲P),我猜他們的廣告Cache-Control: no-cache也排除了RFC 2616(第13.2節*)中定義的通用herstitic過期時間, 。更令人遺憾的是,Atom似乎沒有提供任何標準化的方式來說明建議輪詢飼料的頻率。