我的項目實現了'使用Twitter登錄'OAuth舞蹈,並呈現顯示當前用戶所有用戶的頁面。在Rails中緩存Twitter API調用
# /views/user/show.html.erb
<h1>Users You Follow</h1>
<%= render :partial => 'followed_user', :collection => @current_user.following %>
following
是用戶模型的虛擬屬性。
# /users/models/user.rb
def following
result = twitter_request_authenticated('get_following')
parse_body(result)
end
首先,因爲我是新來的Rails(和MVC)我要問:這是一個合適的抽象?這些'跟隨用戶'自己應該建模嗎?
而現在真正的問題:
擊中Twitter的每個頁面加載此信息似乎沒有必要。 如果我們想要在給定的時間段內緩存這樣的API調用的結果(並且創建一個可方便地刷新該緩存的方法),我們該如何去做呢?這僅僅是一個問題:將API調用的返回值與「expiry」列一起存儲在數據庫列中,並且只在該列值爲空或cache_expires <時才調用API?如果是這樣,這聽起來像它可能會更好地位於自己的模型。思考?
感謝潘,只是設置了memcached,它的工作很棒! – cantlin 2011-03-28 16:25:37