Golang HTTP服务器超时

时间:2013-07-17 03:03:47

标签: ruby http timeout go amazon-elb

我正在尝试在golang中编写一个Web服务器来处理地理编码请求。其中一些请求需要超过一分钟的时间来处理。在这种情况下,服务器似乎正在向客户端返回一个空主体,尽管处理程序仍在运行。我试过下面的代码无济于事。我错过了什么吗?这可能是pat的问题吗?

r := pat.New()

r.Get("/geocode", GeocodeHandler)
r.Get("/status", StatusHandler)
r.Get("/", InvalidHandler)

s := &http.Server{
    Addr: ":"+port,
    Handler: r,
    ReadTimeout: 10 * time.Minute,
    WriteTimeout: 10 * time.Minute,
    MaxHeaderBytes: 0,
}

s.ListenAndServe()

客户端是红宝石。我不相信这是问题,因为如果我使用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))

1 个答案:

答案 0 :(得分:1)

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