考拉响应时间。 20秒等待响应

时间:2012-11-08 09:14:07

标签: ruby-on-rails ruby facebook facebook-graph-api koala

我是RubyonrailsKoala 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放在我的浏览器上,响应是即时的¿不一样吗?

感谢

2 个答案:

答案 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

现在工作正常!