Golang HTTP服务器超时(Golang HTTP server timeout)

2019-09-30 06:09发布

我想在golang写一个web服务器来处理地址解析请求。 一些请求需要更长的时间超过一分钟来处理。 在这种情况下,服务器好像一个空的身体被返回到客户端,虽然处理器继续运行。 我试过下面无济于事的代码。 我缺少的东西吗? 是否有可能,这是一个问题拍 ?

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()

客户端是红宝石。 我不相信这就是问题所在,虽然,因为我看到类似的行为,如果我用卷曲。

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))

Answer 1:

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



文章来源: Golang HTTP server timeout