docs: add graceful-shutdown example for go 1.8 (#835)
* docs: add graceful-shutdown example for go 1.8 * fix testing Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
		
							
								
								
									
										45
									
								
								examples/graceful-shutdown/close/server.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								examples/graceful-shutdown/close/server.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
			
		||||
// +build go1.8
 | 
			
		||||
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"log"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"os"
 | 
			
		||||
	"os/signal"
 | 
			
		||||
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	router := gin.Default()
 | 
			
		||||
	router.GET("/", func(c *gin.Context) {
 | 
			
		||||
		c.String(http.StatusOK, "Welcome Gin Server")
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	server := &http.Server{
 | 
			
		||||
		Addr:    ":8080",
 | 
			
		||||
		Handler: router,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	quit := make(chan os.Signal)
 | 
			
		||||
	signal.Notify(quit, os.Interrupt)
 | 
			
		||||
 | 
			
		||||
	go func() {
 | 
			
		||||
		<-quit
 | 
			
		||||
		log.Println("receive interrupt signal")
 | 
			
		||||
		if err := server.Close(); err != nil {
 | 
			
		||||
			log.Fatal("Server Close:", err)
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	if err := server.ListenAndServe(); err != nil {
 | 
			
		||||
		if err == http.ErrServerClosed {
 | 
			
		||||
			log.Println("Server closed under request")
 | 
			
		||||
		} else {
 | 
			
		||||
			log.Fatal("Server closed unexpect")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Println("Server exist")
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user