gracego

package module
v0.9.8-0...-165525d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2023 License: Apache-2.0 Imports: 20 Imported by: 1

README

gracego enables gracefully restart, upgrade or replace 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, upgrade, replace application gracefully

Documentation

Index

Constants

View Source
const (
	ForkCommandArg = "-grace-forked"
)

Variables

This section is empty.

Functions

func EnableWritePid

func EnableWritePid(dir string) error

EnableWritePid enable to write pid file dir - the directory where to write pid file

func GetServerID

func GetServerID() int

GetServerID get server id

func IsAddrUsedErr

func IsAddrUsedErr(err error) bool

func Serve

func Serve(svr GraceServer, name, addr string) error

Serve serve grace server

func SetAddrInUseWaitSecond

func SetAddrInUseWaitSecond(seconds int)

func SetShutdownTimeout

func SetShutdownTimeout(d time.Duration)

SetShutdownTimeout set the server shutdown timeout duration

func Shutdown

func Shutdown() error

Shutdown graceful server

func Upgrade

func Upgrade(version, path, upgradeURL string) error

Upgrade gracefully upgrade server - version: the new version of the server - path: the relative path of the command in the upgrade compress file - upgradeUrl: the url of the upgrade file, which must be a zip format file with a suffix `.jar` or `.zip`

Types

type GraceServer

type GraceServer interface {
	Serve(listener net.Listener) error
}

GraceServer serve net listener

type GraceShutdowner

type GraceShutdowner interface {
	Shutdown(ctx context.Context) error
}

GraceShutdowner support shutdown

type Shutdowner

type Shutdowner interface {
	Shutdown() error
}

Shutdowner support shutdown

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL