Documentation
¶
Index ¶
- type Callback
- type ErrorFunc
- type ErrorHandler
- type Func
- type GSInterface
- type GracefulShutdown
- func (gs *GracefulShutdown) AddShutdownCallback(shutdownCallback Callback)
- func (gs *GracefulShutdown) AddShutdownManager(manager ShutdownManager)
- func (gs *GracefulShutdown) ReportError(err error)
- func (gs *GracefulShutdown) SetErrorHandler(errorHandler ErrorHandler)
- func (gs *GracefulShutdown) Start() error
- func (gs *GracefulShutdown) StartShutdown(sm ShutdownManager)
- type ShutdownManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Callback ¶
Callback is an interface you have to implement for callbacks. OnShutdown will be called when shutdown is requested. The parameter is the name of the ShutdownManager that requested shutdown.
type ErrorFunc ¶
type ErrorFunc func(err error)
ErrorFunc is a helper type, so you can easily provide anonymous functions as ErrorHandlers.
type ErrorHandler ¶
type ErrorHandler interface {
OnError(err error)
}
ErrorHandler is an interface you can pass to SetErrorHandler to handle asynchronous errors.
type Func ¶
Func is a helper type, so you can easily provide anonymous functions as ShutdownCallbacks.
func (Func) OnShutdown ¶
OnShutdown defines the action needed to run when shutdown triggered.
type GSInterface ¶
type GSInterface interface {
StartShutdown(sm ShutdownManager)
ReportError(err error)
AddShutdownCallback(shutdownCallback Callback)
}
GSInterface is an interface implemented by GracefulShutdown, that gets passed to ShutdownManager to call StartShutdown when shutdown is requested.
type GracefulShutdown ¶
type GracefulShutdown struct {
// contains filtered or unexported fields
}
GracefulShutdown is main struct that handles ShutdownCallbacks and ShutdownManagers. Initialize it with New.
func (*GracefulShutdown) AddShutdownCallback ¶
func (gs *GracefulShutdown) AddShutdownCallback(shutdownCallback Callback)
AddShutdownCallback adds a Callback that will be called when shutdown is requested.
You can provide anything that implements Callback interface, or you can supply a function like this:
AddShutdownCallback(shutdown.ShutdownFunc(func() error {
// callback code
return nil
}))
func (*GracefulShutdown) AddShutdownManager ¶
func (gs *GracefulShutdown) AddShutdownManager(manager ShutdownManager)
AddShutdownManager adds a ShutdownManager that will listen to shutdown requests.
func (*GracefulShutdown) ReportError ¶
func (gs *GracefulShutdown) ReportError(err error)
ReportError is a function that can be used to report errors to ErrorHandler. It is used in ShutdownManagers.
func (*GracefulShutdown) SetErrorHandler ¶
func (gs *GracefulShutdown) SetErrorHandler(errorHandler ErrorHandler)
SetErrorHandler sets an ErrorHandler that will be called when an error is encountered in Callback or in ShutdownManager.
You can provide anything that implements ErrorHandler interface, or you can supply a function like this:
SetErrorHandler(shutdown.ErrorFunc(func (err error) {
// handle error
}))
func (*GracefulShutdown) Start ¶
func (gs *GracefulShutdown) Start() error
Start calls Start on all added ShutdownManagers. The ShutdownManagers start to listen to shut down requests. Returns an error if any ShutdownManagers return an error.
func (*GracefulShutdown) StartShutdown ¶
func (gs *GracefulShutdown) StartShutdown(sm ShutdownManager)
StartShutdown is called from a ShutdownManager and will initiate shutdown. first call ShutdownStart on Shutdown manager, call all ShutdownCallbacks, wait for callbacks to finish and call ShutdownFinish on ShutdownManager.
type ShutdownManager ¶
type ShutdownManager interface {
GetName() string
Start(gs GSInterface) error
ShutdownStart() error
ShutdownFinish() error
}
ShutdownManager is an interface implemnted by ShutdownManagers. GetName returns the name of ShutdownManager. ShutdownManagers start listening for shutdown requests in Start. When they call StartShutdown on GSInterface, first ShutdownStart() is called, then all ShutdownCallbacks are executed and once all ShutdownCallbacks return, ShutdownFinish is called.