Documentation
¶
Overview ¶
Package httpdown provides http.ConnState enabled graceful termination of http.Server.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type HTTP ¶
type HTTP struct {
// StopTimeout is the duration before we begin force closing connections.
// Defaults to 1 minute.
StopTimeout time.Duration
// KillTimeout is the duration before which we completely give up and abort
// even though we still have connected clients. This is useful when a large
// number of client connections exist and closing them can take a long time.
// Note, this is in addition to the StopTimeout. Defaults to 1 minute.
KillTimeout time.Duration
// Stats is optional. If provided, it will be used to record various metrics.
Stats stats.Client
// Clock allows for testing timing related functionality. Do not specify this
// in production code.
Clock clock.Clock
}
HTTP defines the configuration for serving a http.Server. Multiple calls to Serve or ListenAndServe can be made on the same HTTP instance. The default timeouts of 1 minute each result in a maximum of 2 minutes before a Stop() returns.
func (HTTP) ListenAndServe ¶
ListenAndServe returns a Server for the given http.Server. It is equivalent to ListenAndServe from the standard library, but returns immediately. Requests will be accepted in a background goroutine. If the http.Server has a non-nil TLSConfig, a TLS enabled listener will be setup.
type Server ¶
type Server interface {
// Wait waits for the serving loop to finish. This will happen when Stop is
// called, at which point it returns no error, or if there is an error in the
// serving loop. You must call Wait after calling Serve or ListenAndServe.
Wait() error
// Stop stops the listener. It will block until all connections have been
// closed.
Stop() error
}
A Server allows encapsulates the process of accepting new connections and serving them, and gracefully shutting down the listener without dropping active connections.
