ory / graceful

A best practice http server set up that supports graceful shutdown
Apache License 2.0
191 stars 18 forks source link

graceful

Build Status Coverage Status Docs: GoDoc

Join the chat at https://slack.ory.sh/

Best practice http server configurations and helpers for Go 1.8's http graceful shutdown feature. Currently supports best practice configurations by:

Usage

To install this library, do:

go get github.com/ory/graceful

Running Cloudflare Config with Graceful Shutdown

package main

import (
    "net/http"
    "log"

    "github.com/ory/graceful"
)

func main() {
    server := graceful.WithDefaults(&http.Server{
        Addr: ":54932",
        // Handler: someHandler,
    })

    log.Println("main: Starting the server")
    if err := graceful.Graceful(server.ListenAndServe, server.Shutdown); err != nil {
        log.Fatalln("main: Failed to gracefully shutdown")
    }
    log.Println("main: Server was shutdown gracefully")
}