gin的优雅退出

简介

官方示例

优雅退出:当我们关闭程序的时候应该做的后续处理
例如:微服务再启动之前或者启动之后会做一件事:将当前服务的ip+端口注册到注册中心;等到退出时需要告知注册中心;如果没有告知注册中心,那注册中心知道当前服务断开就会有延迟.

package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
	"os"
	"os/signal"
	"syscall"
)

func main() {
	r := gin.Default()

	r.GET("/ping", func(context *gin.Context) {
		context.JSON(http.StatusOK, gin.H{
			"msg": "/pong",
		})
	})
	go func() {
		_ = r.Run(":8081")
	}()

	//等待中断信号,以优雅地关闭服务器
	quit := make(chan os.Signal)
	// 可以捕捉除了kill-9的所有中断信号
	signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
	<-quit
	fmt.Println("收到中断信号;优雅的退出...")
	fmt.Println("退出完成")
}

你可能感兴趣的:(Gin学习,golang,开发语言,后端,gin)