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) 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 状态
Click to show internal directories.
Click to hide internal directories.