shutdown

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2023 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrorFunc

type ErrorFunc func(error)

ErrorFunc 是一个helper类型,你可以提供作为ErrorHandler的匿名函数

func (ErrorFunc) OnError

func (f ErrorFunc) OnError(err error)

OnError 定义了当错误发生时需要执行的动作

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 New

func New() *GracefulShutdown

New 初始化一个GracefulShutdown

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

type ShutdownCallback interface {
	OnShutdown(string) error
}

ShutdownCallback 是一个为回调必须实现的接口 当请求关机时,Onshutdown 函数将会被调用,参数是请求关机的ShutdownManager的名称

type ShutdownFunc

type ShutdownFunc func(string) error

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实现的接口

Directories

Path Synopsis
shutdownmanagers

Jump to

Keyboard shortcuts

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