新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Gin教程:Gin優(yōu)雅地重啟或停止
你想優(yōu)雅地重啟或停止 web 服務(wù)器嗎?有一些方法可以做到這一點(diǎn)。

你所需要的網(wǎng)站建設(shè)服務(wù),我們均能行業(yè)靠前的水平為你提供.標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的保證,主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、品牌網(wǎng)站建設(shè)、網(wǎng)頁制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)公司擁有實(shí)力堅(jiān)強(qiáng)的技術(shù)研發(fā)團(tuán)隊(duì)及素養(yǎng)的視覺設(shè)計(jì)專才。
我們可以使用 ?fvbock/endless? 來替換默認(rèn)的 ?ListenAndServe?
router := gin.Default()
router.GET("/", handler)
// [...]
endless.ListenAndServe(":4242", router)
替代方案:
- ?
manners?:可以優(yōu)雅關(guān)機(jī)的 Go Http 服務(wù)器。 - ?
graceful?:?Graceful是一個(gè) Go 擴(kuò)展包,可以優(yōu)雅地關(guān)閉 http.Handler 服務(wù)器。 - ?
grace?:Go 服務(wù)器平滑重啟和零停機(jī)時(shí)間部署。
如果你使用的是 Go 1.8,可以不需要這些庫!考慮使用 ?http.Server? 內(nèi)置的 ?Shutdown()? 方法優(yōu)雅地關(guān)機(jī). 請參閱 gin 完整的 graceful-shutdown 示例。
// +build go1.8
package main
import (
"context"
"log"
"net/http"
"os"
"os/signal"
"time"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/", func(c *gin.Context) {
time.Sleep(5 * time.Second)
c.String(http.StatusOK, "Welcome Gin Server")
})
srv := &http.Server{
Addr: ":8080",
Handler: router,
}
go func() {
// 服務(wù)連接
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatalf("listen: %s\n", err)
}
}()
// 等待中斷信號以優(yōu)雅地關(guān)閉服務(wù)器(設(shè)置 5 秒的超時(shí)時(shí)間)
quit := make(chan os.Signal)
signal.Notify(quit, os.Interrupt)
<-quit
log.Println("Shutdown Server ...")
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
if err := srv.Shutdown(ctx); err != nil {
log.Fatal("Server Shutdown:", err)
}
log.Println("Server exiting")
}
網(wǎng)頁標(biāo)題:創(chuàng)新互聯(lián)Gin教程:Gin優(yōu)雅地重啟或停止
本文URL:http://www.dlmjj.cn/article/copojsd.html


咨詢
建站咨詢
