2

$.ajax我正在尝试使用推特的搜索功能获取推文列表(在本例中为 25 条带有特定主题标签) 。

有两件事对我来说有点不清楚:

  1. 持续cache: true多长时间(直到它发送新请求而不是使用缓存需要多长时间)?目前似乎每隔几秒钟,但我想知道精确的持续时间以及是否/如何改变它。

  2. 大约 2000-3000 人会在随机时刻从 twitter 中检索信息,但不久之后可能不会由同一个人完成。twitter 将如何响应这个(可能因为请求太多而阻止 IP 地址)?这就是为什么我想将信息缓存大约 1-5 分钟,以减少请求量。

TL;DR:我对 twitter 搜索功能提出了很多请求,如何减轻负载?

4

1 回答 1

1

的缓存时间$.ajax很可能取决于浏览器,因此您不应依赖它来平衡 Twitter API 的负载。{ cache: false }可以通过传入设置参数来关闭此缓存。相反,您应该实现自己的缓存系统。

Twitter 有一个页面描述了这一点:https ://dev.twitter.com/docs/rate-limiting 。

它说它会发送一些标头来告诉您在特定时间跨度内还剩下多少请求。你需要做的只是缓存足够长的时间,这样你就不会超过 Twitter 对你施加的限制。你应该做一些测试,看看你的服务上的不同负载将如何影响对 Twitter API 的调用总数,并相应地设计你的缓存系统。这里的最佳解决方案可能是从 a 到 b'o-clock 我需要缓存 c 分钟,从 d 到 e'o-clock 我需要缓存 f 分钟。另一种解决方案可能是实施一个系统来跟踪正在发生的负载并实时确定缓存时间。如果这两种解决方案都令人望而生畏,您可能只需选择足够长的缓存时间就可以逃脱,这样您就永远不会超过限制。

于 2013-03-07T10:35:42.570 回答