【发布时间】:2011-02-21 15:28:05
【问题描述】:
我正在构建一个 Twitter 应用程序,它需要经常检查用户数据,但我遇到了一个奇怪的缓存问题,该缓存奇怪地在 Twitter 这边,而不是我的。
试试下面的用户:
users/show 在 XML 中:http://twitter.com/users/show.xml?screen_name=technolocus
users/show 在 JSON 中:http://twitter.com/users/show.json?screen_name=technolocus
普通页面:http://twitter.com/technolocus
所有这些访问数据的方法都应该返回相同的值,对吧?检查每个人的statuses_count。
XML:12548
JSON:12513
正常:12498
普通方法(即仅以非编程方式访问个人资料)提供最正确的值 12498。如果我向此帐户发布或删除推文,它会立即在个人资料页面上更新,但 XML 和 JSON 方法仍然返回缓存数据。
此时,XML 和 JSON 方法的值分别为 12 到 18 小时。
我首先尝试从我的网站(托管在 Dreamhost 上)访问这些方法。我以为是 Dreamhost 缓存了响应。然后我尝试直接从浏览器访问 API。在那之后,我从我的机器的命令行中做了一个cURL。这不是梦想家。我认为这可能是我的 ISP(我认为他们使用 NetApp 或类似的东西)。然后我请了印度另一个角落的朋友尝试一下。他得到的缓存响应与我完全相同。
所以它不是 Dreamhost 的缓存;这不是我的 ISP 或我所在国家的缓存。只有一个结论 - Twitter 正在缓存响应。
我怎么能解决这个问题?!?
忘了提这个:服务器上的脚本是 PHP 的,使用 cURL 从 Twitter 检索 XML 和 JSON 数据,而本地测试只是使用浏览器。两者的结果完全相同!
【问题讨论】:
-
服务器正在使用 cURL 运行 PHP 脚本来获取此数据,而本地尝试使用浏览器。你访问过网址吗?你能告诉我你得到了什么价值吗?
-
我想除非 Twitter 对此有所作为,否则无法解决此问题,因此我已将其发布在 Twitter 的 Get Satisfaction 论坛中:getsatisfaction.com/twitter/topics/…
-
更新此内容是为了让您知道所有 XML、JSON 以及 Web 的 statuses_count 值现在返回相同的值 - 此时为 9196。