2 回答
TA贡献1851条经验 获得超3个赞
您需要从头开始创建服务器结构!
不能再使用关闭http.Server。
func serve() *http.Server {
router := gin.Default()
router.GET("/", func(c *gin.Context) {
time.Sleep(5 * time.Second)
c.String(http.StatusOK, "Welcome Gin Server\n")
})
srv := &http.Server{
Addr: ":8080",
Handler: router,
}
go func() {
// service connections
if err := srv.ListenAndServe(); err != nil {
log.Printf("listen: %s\n", err)
}
}()
return srv
}
func main() {
{
srv := serve()
time.Sleep(time.Second * 3)
fmt.Println("down", srv.Shutdown(context.Background()))
}
{
time.Sleep(time.Second * 3)
fmt.Println("up", serve())
}
select {}
}
TA贡献1804条经验 获得超2个赞
我尝试了很多方法,最后写了一篇文章,这将帮助您解决问题: https ://dev.to/arshamalh/trying-to-shutdown-a-gin-server-goroutines-and-channels-提示-gf3
- 2 回答
- 0 关注
- 134 浏览
添加回答
举报