我正在使用 Gorilla Web Toolkit 的 Mux 库以及捆绑的 Go http 服务器。
问题是在我的应用程序中,HTTP 服务器只是一个组件,它需要由我自行决定停止和启动。
当我调用 http.ListenAndServe(fmt.Sprintf(":%d", service.Port()), service.router)
它阻塞并且我似乎无法停止服务器运行。
我知道这在过去一直是个问题,现在仍然如此吗?有没有新的解决方案?
原文由 jim 发布,翻译遵循 CC BY-SA 4.0 许可协议
关于优雅关闭(在 Go 1.8 中引入),一个更具体的例子: