目前我在我的网站首页加上了 Twitter 消息引入功能,之前是饭否的,更新的方式是使用 Rails.cache.write(:expires_in => 15.minutes) ,但后面发现这个过期没有起作用。而且这个操作方式比较慢,因为是用户在刷新页面的时候如果缓存过期的话,就再次通过 API 去饭否或 Twitter 更新最新的消息。连接到国内的饭否 API 还没什么感觉,本来服务器网速快,但到了 Twitter 上面问题就来了,一个请求要好几秒,而且更新频率要求很高的
于是想了想换成 计划任务的方案,让系统某某的在后台自动更新 Twitter 消息。
看了《Ruby on Rails Rake Tutorial (aka. How rake turned me into an alcoholic)》,学习它使用 Rake + Linux 计划任务的方式来操作。
# Twitternamespace:tweetdodesc"Twitter reload."task:update=>:environmentdorequire'app/models/setting'require'app/models/tweet'setting=Setting.find_createif!setting.fanfou_id.blank?puts'Load tweets from twitter.com...'items=Tweet.get_home_messages(setting.fanfou_id,5,true)puts"Done. there have #{items.count} tweet."endendend