0

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

使用一个 cron gem,比如每当每分钟拉下最新的推文并将其写入文件,然后让页面从该文件中拉出推文,而不是直接从 Twitter 中拉出。

4

3 回答 3

1

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

于 2012-02-13T11:56:29.520 回答
1

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

API 速率限制是必要的邪恶。也许你可以制作一个宝石来帮助其他人轻松扼杀自己。

于 2012-02-13T16:27:59.187 回答
0

我最终使用 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
于 2012-02-20T22:52:43.333 回答