我正在尝试用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))
找到了问题。我没有提到我的服务器在Amazon ELB后面。它的默认超时是60秒。