zero-downtime-listener
A simple package to create zero downtime listener.
Usage
Standard http package:
listeners, err := listener.NewListeners([]string{":8080"})
if err != nil {
log.Fatalln(err)
}
http.Serve(listeners[0], nil)
listener.Wait() //Wait for the accepted connections running complete
Gin framework:
listeners, err := listener.NewListeners([]string{":8080"})
if err != nil {
log.Fatalln(err)
}
router := gin.Default()
router.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "this is a test")
})
router.RunListener(listeners[0])
listener.Wait() //Wait for the accepted connections running complete
Close listeners:
listener.Close()
Restart command:
kill -HUP PID
Thanks: