zdpgo_gin_graceful
为zdpgo_gin框架打造的用于实现优雅退出的框架,当你需要程序优雅退出的时候可以考虑使用此框架
安装
github.com/zhangdapeng520/zdpgo_gin_graceful
使用教程
基本用法
package main
import (
"context"
gin "github.com/zhangdapeng520/zdpgo_gin"
graceful "github.com/zhangdapeng520/zdpgo_gin_graceful"
"net/http"
"os/signal"
"syscall"
)
func main() {
// 创建上下文
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer stop()
// 基于优雅退出创建路由
router, err := graceful.Default()
if err != nil {
panic(err)
}
defer router.Close()
// 普通的请求
router.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "Welcome Gin Server")
})
// 基于优雅退出启动服务
go func() {
if err := router.RunWithContext(context.Background()); err != nil && err != context.Canceled {
panic(err)
}
}()
<-ctx.Done()
// 优雅退出的逻辑
if err := router.Shutdown(context.Background()); err != nil {
panic(err)
}
}
版本
v0.1.0
- 基本用法