我可以使用Context()。Done()来检查服务器关闭吗?

时间:2018-04-16 06:42:10

标签: go

正如golang http包文档所说,http.ServerShutdown()调用后所有处理程序完成后才会关闭。如果处理程序花费的时间太长,则上下文将过期,Shutdown()将返回错误。在调用server.Shutdown()时,如何强制处理程序立即返回?在Context().Done()被调用后,http.Request的{​​{1}}会被关闭吗?

1 个答案:

答案 0 :(得分:3)

没有。如果您read the docs,它会准确解释Shutdown的作用,明确说明它中断活动连接(强调添加):

  

Shutdown正常关闭服务器而不会中断任何活动连接。关闭工作首先关闭所有打开的侦听器,然后关闭所有空闲连接,然后无限期地等待连接返回空闲然后关闭。如果提供的上下文在关闭完成之前到期,则Shutdown返回上下文的错误,否则它将返回关闭服务器的基础监听器返回的任何错误。