Twitter 速率限制和 Cron 缓存
我在 Heroku 上有一个小型 Rails 应用程序,它可以提取客户的最新推文并显示在所有页面上。它已经达到了 Twitter 的速率限制。我正在尝试想出一个解决方案。以下是一个明智的方法吗......
使用像 每当 这样的 cron gem 来拉取最新的推文分钟并将其写入文件,然后让页面从该文件中提取推文,而不是直接从 Twitter 中提取。
I have a small rails app on Heroku that pulls in my client's latest Tweet to display on all pages. It is hitting Twitter rate limits already. I'm trying to come up with a solution. Would the following be a sensible approach ...
Use a cron gem like Whenever to pull down the latest Tweet every minute and write it to a file, then have pages pull the Tweet from that file instead of directly from Twitter.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,这是一种可能性。或者您可以使用 缓存 来存储推文,例如使用 Memcached。这也将使您的应用程序更快。
Yes, this is one possibility. Or you could use caching to store the tweets, for example using Memcached. This will also make your app faster.
我不熟悉 Twitter 上的具体速率限制,但如果它们以请求/分钟表示,那么 cron 作业可能会起作用。无论您做什么,您都需要停止让传入流量驱动您的请求。通常,您会创建一个队列并让一个工作人员从中提取请求。该工作人员会自行处理速率限制,这样您就不会超过。
API 速率限制是一种不可避免的罪恶。也许你可以制作一个宝石来帮助其他人轻松地节制自己。
I'm not familiar with the specific rate limits on twitter, but if they're expressed in requests/minute then the cron job might work. Whatever you do, you need to stop letting incoming traffic drive your requests. Typically you'd create a queue and have a single worker pull requests off of it. That worker would take care of rate limiting itself so you don't go over.
API rate limits are a necessary evil. Maybe you can make a gem to help other folks easily throttle themselves.
我最终使用 memcache 来缓存请求:
I ended up using memcache to cache the requests: