首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确停止Go sdk自带的web-server?

如何正确停止Go sdk自带的web-server?
EN

Stack Overflow用户
提问于 2016-10-18 04:45:19
回答 1查看 241关注 0票数 0

关闭Go SDK附带的web服务器的正确方法是什么?

下面是一个web服务示例:

代码语言:javascript
复制
package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

这是从这里拉出来的:https://golang.org/doc/articles/wiki/#tmp_3

但是,我想拆掉这个服务器,让它排出所有当前正在运行的请求。这是怎么做的?

EN

回答 1

Stack Overflow用户

发布于 2016-10-18 05:28:59

这正是github.com/braintree/manners所做的。您可以查看源代码,但要点是它们有一个sync.WaitGroup,它在每个传入连接时都会递增,在完成时会递减。当你要求礼仪停止服务器时,它会等到所有人都离开了门。

如果您需要严格遵守std库,那么您可以从manners如何做到这一点上获得一些灵感,但它确实是一个很好的包,我建议您直接使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40095371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档