2012-02-17 94 views
1

我们正试图创建一个应用程序,它允许用户显示在20个橄榄球队的最新的Twitter消息。我们正在使用Zend_Service_Twitter_Search和橄榄球队查询例如“兵工厂”。Twitter的搜索API速率限制的Zend

我们遇到的问题是在任何1个点的网站可以接受请求查看全部20支球队消息让20个API的调用,如果很多用户都在做这个,然后每小时的极限将受到重创。

我们希望在所有20支球队的最新消息,所以我们不希望缓存数据超过1分钟的车。有没有人有一些建议,我已经通过文件,但没有建议。

干杯

Ĵ

回答

0

我实现了类似的东西最近。简单的答案是计算出您需要制作多少个查询。我们假设每个团队有1个,每次20个。将60秒(速率限制的周期)除以(速率限制/查询数量),然后将结果缓存在像memcache这样的秒数内。然后,当用户访问该站点时,如果他们在那里从memcache中提取结果,否则请将它们新鲜。 Memcache非常棒,因为它会自动清除过期的数据,因此您不会超过速率限制,并始终拥有最新的数据(不会影响速率限制)。

所以,如果速率限制为每分钟200(我知道这是不是,但它使得数学容易),你的缓存为60 /(200/20)= 6秒的成绩。因此,在最大比率下,您将在一分钟内为20支球队中的每支球队进行10次查询,因此每分钟有200个查询,这在速度限制上是一声巨响。

0

这在我看来,随着越来越多的后端设计问题。要解决的问题是:

  1. 为任何规模
  2. 不超过API限制的用户,尚未发布Twitter API limits

似乎是一个解决方案是一个数据库/数据存储提供最新数据某种坚持数据的方式。
您可以每分钟存储20条api电话信息,然后只要您喜欢就可以将其提供给用户。

在Twitter的API文档简单介绍一下之后,它看起来并不像有上存储数据的任何限制。虽然您可能需要重新考虑使用搜索API的频率,因为未张贴限制。