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)
}
}kill -HUP <PID>v2: the new version to upgradeecho: the relative path of the upgrade command in the download.ziphttp://127.0.0.1:8081/download.zip: the upgrade url, which must be a zip file and end with.zipor.jar.
err := gracego.Upgrade("v2", "echo", "http://127.0.0.1:8081/download.zip")
if err != nil {
// error handle
}- echo: example to shutdown, restart, upgrade, replace application gracefully