breaker

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2019 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Status

type Status struct {
	// contains filtered or unexported fields
}

func NewStatus

func NewStatus(config StatusConfig) *Status

func (*Status) ConvertToAbnormal

func (st *Status) ConvertToAbnormal()

func (*Status) Record

func (st *Status) Record(abnormal bool)

func (*Status) StatusCode

func (st *Status) StatusCode() StatusCode

type StatusCode

type StatusCode int
const (
	StatusCodeNormal StatusCode = iota
	StatusCodeAbnormal
	StatusCodeRestore
)

func (StatusCode) String

func (s StatusCode) String() string

type StatusConfig

type StatusConfig struct {
	AbnormalLimit    rate.Limit
	AbnormalDuration time.Duration
	RestoreLimit     rate.Limit
	RestoreCount     int32
}

* 异常状态维护, 通过 Record 方法记录当前的最新一次更新状态 Status 可以处于 StatusCodeNormal StatusCodeAbnormal StatusCodeRestore 这三个状态 初始的时候 Status 处于 StatusCodeNormal, 当abnormal 的记录达到一定频率的时候 转化为 StatusCodeAbnormal 状态 Status 会停留在 StateTypeAbnormal状态一段时间后(时间可以为0),进入恢复状态。恢复状态会统计正常记录的数量和错误的频率 如果错误记录的频率达到一定值,则Status状态会转回 StatusCodeAbnormal 状态

Jump to

Keyboard shortcuts

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