2012-02-13 68 views
0

我在Heroku上一個小的Rails應用程序,在我的客戶的最新的tweet拉來顯示所有網頁。它已經達到了Twitter的速度限制。我試圖想出一個解決方案。下面是一個明智的做法...Twitter的速率限制和cron緩存與軌道

使用類似Whenever的cron gem來每分鐘下拉最新的Tweet並將其寫入文件,然後讓頁面從該文件中取出Tweet,而不是直接從Twitter中取出Tweet。

回答

1

是的,這是一種可能性。或者你可以使用caching存儲鳴叫,例如使用Memcached的。這也將使您的應用程序更快。

1

我不熟悉的Twitter特定速率限制,但如果他們在請求正在表達/分鐘,然後cron作業可能會奏效。無論你做什麼,你都需要停止讓傳入的流量驅動你的請求。通常情況下,您會創建一個隊列並從中取出單個工作人員的請求。那個工人會照顧自己的速率限制,所以你不會過去。

API速率限制是必要之惡。也許你可以創造一個寶石,幫助其他人輕鬆地扼殺自己。

0

我結束了使用內存緩存緩存請求:

latest_tweet = Rails.cache.read "latest_tweet" 
if !latest_tweet 
    latest_tweet = Twitter.user_timeline("sometwitterusername").first.text 
    Rails.cache.write("latest_tweet", latest_tweet, :expires_in => 5.minutes) 
end