【问题标题】:Twitter Rate Limits and Cron caching with railsTwitter 速率限制和使用 rails 缓存的 Cron
【发布时间】:2012-02-21 06:52:43
【问题描述】:

我在 Heroku 上有一个小型 Rails 应用程序,它可以拉入我客户的最新推文以显示在所有页面上。它已经达到了 Twitter 的速率限制。我正在尝试提出解决方案。以下是明智的做法吗...

使用像 Whenever 这样的 cron gem 每分钟下载最新的推文并将其写入文件,然后让页面从该文件而不是直接从 Twitter 中拉取推文。

【问题讨论】:

    标签: ruby-on-rails ruby twitter cron whenever


    【解决方案1】:

    是的,这是一种可能性。或者您可以使用 caching 来存储推文,例如使用 Memcached。这也将使您的应用程序更快。

    【讨论】:

      【解决方案2】:

      我不熟悉 twitter 上的具体速率限制,但如果它们以请求/分钟表示,那么 cron 作业可能会起作用。无论您做什么,都需要停止让传入流量驱动您的请求。通常,您会创建一个队列并让一个工作人员从中拉取请求。该工作人员会自行处理速率限制,因此您不会超过。

      API 速率限制是必不可少的。也许您可以制作一个宝石来帮助其他人轻松自我节制。

      【讨论】:

        【解决方案3】:

        我最终使用 memcache 来缓存请求:

        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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-08-05
          • 1970-01-01
          • 1970-01-01
          • 2022-08-19
          • 1970-01-01
          • 2012-01-20
          • 1970-01-01
          • 2011-11-16
          相关资源
          最近更新 更多