1

我们正在尝试创建一个应用程序,允许用户显示 20 支足球队的最新推特新闻。我们将 Zend_Service_Twitter_Search 与足球队查询一起使用,例如“Arsenal”。

我们遇到的问题是,网站可能会在任何时候请求查看所有 20 支球队的新闻,因此如果有很多用户这样做,那么对 API 的 20 次调用就会达到每小时限制。

我们想要所有 20 个团队的最新消息,所以我们不想缓存数据超过 1 分钟。有没有人对此有一些建议我已经通过文档但没有建议。

干杯

Ĵ

4

2 回答 2

0

在我看来,这更像是一个后端设计问题。您要处理的问题是:

  1. 为任何规模的用户提供当前数据
  2. 不超过 API 限制,即未发布的Twitter API 限制

似乎解决方案是某种持久化数据的数据库/数据存储。
您可以让您的 20 次 API 调用每分钟存储信息,然后将其提供给用户,只要您愿意。

在简要查看 Twitter API 文档后,它看起来对存储数据没有任何限制。尽管您可能想重新考虑使用搜索 API 的频率,因为未发布的限制。

于 2012-02-18T07:45:56.113 回答
0

我最近实现了类似的东西。简单的答案是计算出您需要进行多少次查询。假设每个团队有 1 个,所以每次 20 个。将 60 秒(速率限制的时间段)除以(速率限制/查询数),然后将结果简单地缓存在 memcache 之类的秒数中。然后,当用户访问该站点时,如果结果存在,则从 memcache 中提取结果,否则使它们保持新鲜。Memcache 非常棒,因为它会自动清除过期的数据,这样您就不会超过速率限制,并且始终拥有尽可能最新的数据(不会超出您的速率限制)。

因此,如果速率限制为每分钟 200 次(我知道不是,但它使数学变得容易),您将缓存结果 60 / (200/20) = 6 秒。因此,在最大速率下,您将在一分钟内对 20 个团队中的每个团队进行 10 次查询,因此每分钟 200 次查询,这是对速率限制的冲击。

于 2012-02-18T07:56:51.260 回答