2012-02-17 95 views
1

我們正試圖創建一個應用程序,它允許用戶顯示在20個橄欖球隊的最新的Twitter消息。我們正在使用Zend_Service_Twitter_Search和橄欖球隊查詢例如「兵工廠」。Twitter的搜索API速率限制的Zend

我們遇到的問題是在任何1個點的網站可以接受請求查看全部20支球隊消息讓20個API的調用,如果很多用戶都在做這個,然後每小時的極限將受到重創。

我們希望在所有20支球隊的最新消息,所以我們不希望緩存數據超過1分鐘的車。有沒有人有一些建議,我已經通過文件,但沒有建議。

乾杯

Ĵ

回答

0

我實現了類似的東西最近。簡單的答案是計算出您需要製作多少個查詢。我們假設每個團隊有1個,每次20個。將60秒(速率限制的週期)除以(速率限制/查詢數量),然後將結果緩存在像memcache這樣的秒數內。然後,當用戶訪問該站點時,如果他們在那裏從memcache中提取結果,否則請將它們新鮮。 Memcache非常棒,因爲它會自動清除過期的數據,因此您不會超過速率限制,並始終擁有最新的數據(不會影響速率限制)。

所以,如果速率限制爲每分鐘200(我知道這是不是,但它使得數學容易),你的緩存爲60 /(200/20)= 6秒的成績。因此,在最大比率下,您將在一分鐘內爲20支球隊中的每支球隊進行10次查詢,因此每分鐘有200個查詢,這在速度限制上是一聲巨響。

0

這在我看來,隨着越來越多的後端設計問題。要解決的問題是:

  1. 爲任何規模
  2. 不超過API限制的用戶,尚未發佈Twitter API limits

似乎是一個解決方案是一個數據庫/數據存儲提供最新數據某種堅持數據的方式。
您可以每分鐘存儲20條api電話信息,然後只要您喜歡就可以將其提供給用戶。

在Twitter的API文檔簡單介紹一下之後,它看起來並不像有上存儲數據的任何限制。雖然您可能需要重新考慮使用搜索API的頻率,因爲未張貼限制。