2

我是新手,RubyonrailsKoala gem确定我做错了什么。我一直在将我的代码调整为最小表达式,但问题仍然存在。然后我尝试在没有 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放在我的浏览器上,响应是即时的¿不一样?

谢谢

4

2 回答 2

1

我在我的应用程序中使用考拉,并没有这样的经验。唯一的区别是我不匿名使用它。相反,我创建了一个应用程序,并使用访问令牌来访问 Facebook API。这可能是根本原因,因为我发现这篇文章似乎也相关。

于 2012-11-08T09:55:35.327 回答
1

最后,这是一个 DNS 问题(感谢 jpgeek)。

当我对任何网站进行 GET 请求时,响应是在 21 秒后,但使用同一网站的 IP,响应是瞬时的。

我在谷歌上找到了解决方案:http: //www.mikeperham.com/2010/02/10/asynchronous-dns-resolution/

我在 Gemfile 中使用了这个个人解决方案(我不确定它是否是最好的):

group :development do
    require 'resolv'
    require 'resolv-replace'
end

现在它工作正常!

于 2012-11-09T18:01:19.490 回答