Documentation ¶
Index ¶
- type ErrorFunc
- type ErrorHandler
- type GSInterface
- type GracefulShutdown
- func (gs *GracefulShutdown) AddShutdownCallback(shutdownCallback ShutdownCallback)
- 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 ShutdownCallback
- type ShutdownFunc
- type ShutdownManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ErrorHandler ¶
type ErrorHandler interface {
OnError(error)
}
ErrorHandler 是一个可以传给SetErrorHander来处理异步错误的接口
type GSInterface ¶
type GSInterface interface { StartShutdown(sm ShutdownManager) ReportError(err error) AddShutdownCallback(shutdownCallback ShutdownCallback) }
GSInterface 是一个由GracefulShutdown实现的接口, 当请求关机时它会传递给ShutdownManager然后调用StartShudown
type GracefulShutdown ¶
type GracefulShutdown struct {
// contains filtered or unexported fields
}
GracefulShutdown 是处理ShutdownCallback和ShutdownManager的主要结构体。使用New初始化它
func (*GracefulShutdown) AddShutdownCallback ¶
func (gs *GracefulShutdown) AddShutdownCallback(shutdownCallback ShutdownCallback)
AddShutdownCallback 添加一个在关机的时候被调用的ShutdownCallback实例
也可以添加任何一个实现了ShutdownCallback接口的对象,或者可以使用一个类似这种的函数:
AddShutdownCallback(shutdown.ShutdownFunc(func() error { // callback code return nil }))
func (*GracefulShutdown) AddShutdownManager ¶
func (gs *GracefulShutdown) AddShutdownManager(manager ShutdownManager)
AddShutdownManager 添加一个即将监听关机请求的ShutdownManager实例
func (*GracefulShutdown) ReportError ¶
func (gs *GracefulShutdown) ReportError(err error)
ReportError 是一个给ErrorHandler汇报错误的函数,它在ShutdownManager中使用
func (*GracefulShutdown) SetErrorHandler ¶
func (gs *GracefulShutdown) SetErrorHandler(errorHandler ErrorHandler)
SetErrorHandler 设置一个当在ShutdownCallback或ShutdownManager中发生错误时要调用的ErrorHandler实例
也可以提供任何实现了ErrorHandler接口的对象,或者提供一种类似这种的函数:
SetErrorHandler(shutdown.ErrorFunc(func (err error) { // handle error }))
func (*GracefulShutdown) Start ¶
func (gs *GracefulShutdown) Start() error
Start 调用所有添加的ShutdownManager的Start方法,ShutdownManager开始监听关机请求 如果ShutdowManager返回错误则返回该错误
func (*GracefulShutdown) StartShutdown ¶
func (gs *GracefulShutdown) StartShutdown(sm ShutdownManager)
StartShutdown 从ShutdownManager中被调用,并且开始关机 首先调用ShutdownManager中的ShutdownStart 然后调用所有的ShutdownCallback,等待所有的callback完成 最后调用ShutdownManager中的ShutdownFinish
type ShutdownCallback ¶
ShutdownCallback 是一个为回调必须实现的接口 当请求关机时,Onshutdown 函数将会被调用,参数是请求关机的ShutdownManager的名称
type ShutdownFunc ¶
ShutdownFunc 是一个帮助类型,用于提供作为ShutdownCallback的匿名函数
func (ShutdownFunc) OnShutdown ¶
func (f ShutdownFunc) OnShutdown(shutdownManager string) error
OnShutdown 定义当关机操作被触发时需要去运行的动作
type ShutdownManager ¶
type ShutdownManager interface { // GetName 获取ShutdownManager的名称 GetName() string // Start ShutdownManagers开始监听关机请求 Start(gs GSInterface) error // ShutdownStart 当GSInterface中的StartShutdown被调用时,ShutdownStart()会被调用, // 然后所有的ShutdownCallback都被执行,一旦所有的ShutdownCallback返回,ShutdownFinish会被调用 ShutdownStart() error ShutdownFinish() error }
ShutdownManager 是一个由ShutdownManager实现的接口