我是Rubyonrails
和Koala gem
的新人,我确信我做错了什么。我一直在调整我的代码到最小的表达式,但问题仍然存在。然后我试着在没有考拉宝石的情况下做同样的事,但问题仍然存在。
这是代码:
require 'koala'
require 'open-uri'
puts Time.now
@graph = Koala::Facebook::API.new
resp = @graph.graph_call("cocacola", {}, "get", {})
puts resp
puts Time.now
coke_url = "https://graph.facebook.com/cocacola"
response = open coke_url
response = JSON.parse response.read
puts response.inspect
puts Time.now
我必须等待Facebook的回复总是21秒。如果我将https://graph.facebook.com/cocacola放在我的浏览器上,响应是即时的¿不一样吗?
感谢
答案 0 :(得分:1)
我在我的应用程序中使用Koala并没有这样的经验。唯一的区别是我不匿名使用它。相反,我创建了一个应用程序,我正在使用访问令牌来访问Facebook API。这可能是根本原因,因为我发现this post似乎也是相关的。
答案 1 :(得分:1)
最后,这是一个DNS问题(感谢jpgeek)。
当我向任何网站发出GET请求时,响应时间为21秒,但使用同一网站的IP时,响应是即时的。
我在google上找到了解决方案:http://www.mikeperham.com/2010/02/10/asynchronous-dns-resolution/
我在Gemfile中使用了这个个人解决方案(我不确定它是否是最好的):
group :development do
require 'resolv'
require 'resolv-replace'
end
现在工作正常!