Skip to content
/ gracego Public

gracefully restart,upgrade,replace golang application

License

Notifications You must be signed in to change notification settings

vogo/gracego

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gracego enables gracefully restart or upgrade golang application.

Usage

Start server

Your server must implement the interface GraceServer with two methods:

type GraceServer interface {
	Serve(listener net.Listener) error
	Shutdown(ctx context.Context) error
}

Use gracego.Serve() to start your server:

func main() {
	server = &http.Server{}

	err := gracego.Serve(server, "demo", ":8080")
	if err != nil {
		fmt.Printf("server error: %v", err)
	}
}

Restart server gracefully

kill -HUP <PID>

Upgrade server gracefully

  • v2: the new version to upgrade
  • echo: the relative path of the upgrade command in the download.zip
  • http://127.0.0.1:8081/download.zip: the upgrade url, which must be a zip file and end with .zip or .jar.
err := gracego.Upgrade("v2", "echo", "http://127.0.0.1:8081/download.zip")
if err != nil {
    // error handle
}

Examples

  • echo: example to shutdown, restart and upgrade gracefully

About

gracefully restart,upgrade,replace golang application

Resources

License

Stars

Watchers

Forks

Packages

No packages published