我在Heroku上有一个小型rails应用程序,可以在我的客户端最新推文中显示所有页面。它已经达到Twitter的速度限制。我正试图想出一个解决方案。以下是一种明智的做法......
使用像Whenever这样的cron gem来每分钟下载最新的Tweet并将其写入文件,然后让页面从该文件中提取Tweet而不是直接从Twitter中提取。
答案 0 :(得分:1)
是的,这是一种可能性。或者您可以使用caching来存储推文,例如使用Memcached。这也将使您的应用更快。
答案 1 :(得分:1)
我不熟悉twitter上的具体速率限制,但如果它们以请求/分钟表示,那么cron作业可能会起作用。无论你做什么,你都需要停止让传入的流量驱动你的请求。通常,您将创建一个队列,并让一个工作人员从中提取请求。那个工人会自己处理速率限制,所以你不要过去。
API速率限制是必要的恶魔。也许你可以制作一个宝石来帮助其他人轻松节约自己。
答案 2 :(得分: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