【问题标题】:Twitter Search API Rate Limit ZendTwitter 搜索 API 速率限制 Zend
【发布时间】:2012-03-08 18:17:19
【问题描述】:
我们正在尝试创建一个应用程序,该应用程序允许用户显示 20 支足球队的最新推特新闻。我们将 Zend_Service_Twitter_Search 与足球队查询一起使用,例如“兵工厂”。
我们遇到的问题是,在任何时候网站都可能会请求查看所有 20 个团队的新闻,因此如果有很多用户这样做,那么对 API 的 20 次调用就会达到每小时限制。
我们想要所有 20 个团队的最新消息,因此我们不希望将数据缓存超过 1 分钟。有没有人对此有一些建议我已经通过文档但没有建议。
干杯
J
【问题讨论】:
标签:
php
zend-framework
twitter
twitter-search
【解决方案1】:
在我看来,这更像是一个后端设计问题。您要处理的问题是:
- 为任何规模的用户提供当前数据
- 不超过未发布的 api 限制Twitter API limits
似乎解决方案是某种数据库/数据存储来持久化数据。
您可以让您的 20 次 API 调用每分钟存储信息,然后根据需要将其提供给用户。
在简要查看 Twitter API 文档后,似乎对存储数据没有任何限制。虽然您可能需要重新考虑使用搜索 API 的频率,因为未发布的限制。
【解决方案2】:
我最近实现了类似的东西。简单的答案是计算出您需要进行多少次查询。假设每个团队有 1 个,所以每次 20 个。将 60 秒(速率限制的时间段)除以(速率限制/查询次数),然后将结果简单地缓存在 memcache 之类的秒数中。然后,当用户访问该站点时,如果结果存在,则从 memcache 中提取结果,否则将其更新。 Memcache 非常棒,因为它会自动清除过期的数据,这样您就不会超过速率限制,并且将始终拥有尽可能最新的数据(不会超出您的速率限制)。
因此,如果速率限制为每分钟 200 次(我知道不是,但它使计算变得容易),您将缓存结果 60 / (200/20) = 6 秒。因此,在最大速率下,您将在一分钟内对 20 个团队中的每个团队进行 10 次查询,因此每分钟 200 次查询,这是对速率限制的冲击。