当前位置: 首页 > 面试题库 >

Golang HTTP服务器超时

裴金鑫
2023-03-14
问题内容

我正在尝试用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秒。



 类似资料:
  • 我正在用C++开发双向流gRPC。我想在服务器端设置一个超时限制,如果连接超过一个阈值,就关闭连接。 但是我发现的唯一超时机制是在客户端(https://grpc.io/blog/deadlines/#c)。我找不到任何API可以用于ServerContext(https://grpc.github.io/grpc/cpp/classgrpc_1_1_server_context.html)。有人

  • 我已经安装了selenium IDE和selenium server(selenium RC)。。。当使用phpunit在命令提示符下运行测试用例时,会出现如下错误 访问位于“”的Selenium服务器时,响应无效http://localhost:4444/selenium-服务器/驱动程序/':30000ms后超时 我在selenium IDE选项超时属性中进行了更改,并且在启动服务器时 jav

  • 这种方法的Java博士说 如果需要,最多等待给定的时间完成计算,然后检索其结果(如果可用)。 参数: 超时等待的最长时间 unit超时参数的时间单位 根据我的理解,我们对强加了一个超时,我们提交给,这样,我的将在指定的时间(超时)过去后中断 但是根据下面的代码,似乎超过了超时时间(2秒),我真的很难理解这一点。谁能给我指一下正确的路吗?

  • 我使用快速和连接超时中间件来处理超时。 它工作得很好,但是我默认的服务器的超时设置为两分钟。 因此,如果我想将超时中间件设置为大于两分钟的值,我还必须将http服务器超时增加到稍大一点(否则我的连接超时处理程序不会被调用) 我怎样才能避免这种情况?我错过什么了吗?

  • 我已经在我的Windows7机器上安装了WebLogic12C(12.1.3)。在创建管理服务器并登录之后,我试图创建一个新的托管服务器。但是当我按下create按钮时,显示加载符号需要花费大量时间,最后给出等待完成的错误超时:Activate state:STATE_DISTRIBUTED Target Servers states:AdminServer STATE_DISTRIBUTED。早

  • 问题内容: 我有一个脚本,可在mongodb集合上定期运行聚合。随着数据集的增长,聚合所花费的时间也随之增长。我的聚合脚本最近停止了一致的工作,并且错误日志显示: 我已经尝试调试了这一点,并且我可以找到的唯一模式是,这种超时似乎仅在聚合时间超过2分钟(正确的超时)时发生2m左右)。有人为此提供其他调试提示吗?2分钟的事情给我的印象是,我只需要在某处配置一些超时,但是我无法弄清楚我在哪里或者是否陷入