Ruby Golang HTTP服务器超时

Ruby Golang HTTP服务器超时,ruby,http,timeout,go,amazon-elb,Ruby,Http,Timeout,Go,Amazon Elb,我正试图在golang中编写一个web服务器来处理地理编码请求。其中一些请求的处理时间超过一分钟。在这种情况下,服务器似乎正在向客户端返回一个空的主体,尽管处理程序一直在运行。我尝试了下面的代码,但没有成功。我错过什么了吗?这可能是一个问题吗 客户端是ruby。但我不认为这是问题所在,因为如果我使用curl,我会看到类似的行为 uri = URI(URI.escape("http://blah.com/geocode?address=#{address}")) http = Net::HTTP.

我正试图在golang中编写一个web服务器来处理地理编码请求。其中一些请求的处理时间超过一分钟。在这种情况下,服务器似乎正在向客户端返回一个空的主体,尽管处理程序一直在运行。我尝试了下面的代码,但没有成功。我错过什么了吗?这可能是一个问题吗

客户端是ruby。但我不认为这是问题所在,因为如果我使用curl,我会看到类似的行为

uri = URI(URI.escape("http://blah.com/geocode?address=#{address}"))
http = Net::HTTP.new(uri.host, uri.port)
http.read_timeout = 10 * 60
response = http.request(Net::HTTP::Get.new(uri.request_uri))

发现了问题。我没有提到我的服务器在亚马逊ELB后面。默认超时为60秒。

检查您的客户端是否超时。是否在请求完成处理之前返回空正文?还是处理完成后返回空的正文?希望这能表明超时是在服务器端还是客户端。@Tom:如果我使用curl作为客户端,我也会遇到同样的问题。不过我附加了ruby客户端以供参考。@Intermernet请参见上文,默认HTTP超时通常为2分钟。Amazon刚刚添加了对配置超时的支持:
uri = URI(URI.escape("http://blah.com/geocode?address=#{address}"))
http = Net::HTTP.new(uri.host, uri.port)
http.read_timeout = 10 * 60
response = http.request(Net::HTTP::Get.new(uri.request_uri))