用Dalli缓存Twitter结果

Ian*_*Ian 4 ruby twitter caching ruby-on-rails

我是Ruby(和Rails)的新手,希望你能帮助我解决一些我正在经历的困惑.

我正在尝试将Twitter gem集成到我的网站中以获取用户的最新推文,并获取其个人资料图片的链接.宝石工作很好,直到(我认为)一小时内的第100个API调用,之后Twitter会切断你.

根据我收集的内容,我需要使用memcache将结果缓存约1分钟.这里有一些很棒的伪代码但不幸的是,它有点过头了.我希望我能得到一些更具体的细节.

目前,我不确定我会在哪里放置该代码?我想在应用程序布局视图中显示twitter信息,那么它会进入application_helper.rb文件中的方法吗?

我最好的尝试解决这个问题导致以下代码,它会抛出"Missing Helper File"错误.

module ApplicationHelper
  require "memcache"

  def twitter
    cache = MemCache.new
    twitter = cache.get("twitter").first
    if twitter.nil?
      begin
        twitter = Twitter.user("TwitterName") 
        cache.set("twitter", twitter, :expires_in => 1.minute) if twitter
      rescue
        twitter = default
      end
    end
    return twitter
  end
end
Run Code Online (Sandbox Code Playgroud)

ban*_*ito 5

首先为您的环境启用缓存和内存缓存(例如config/environments/production.rb)

# Use a different cache store in production
config.cache_store = :mem_cache_store
Run Code Online (Sandbox Code Playgroud)

然后在视图中你想要显示推文做这样的事情

<% cache("tweets", :expires_in => 42.minutes) do  %>
 <% Twitter.user_timeline("User").each do %>
    .....
  <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)