breaker

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2022 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CircuitBreakerStatusClosed    = int32(0)
	CircuitBreakerStatusOpen      = int32(1)
	CircuitBreakerStatusHalfOpen  = int32(2)
	CircuitBreakerStatusForceOpen = int32(3)
)
View Source
const (
	TotalHit   = "total"
	FailureHit = "failure"
)

Variables

View Source
var ErrCircuitBreak error = errors.New("circuit breaker triggered")

Functions

This section is empty.

Types

type CircuitBreaker

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

func NewCircuitBreaker

func NewCircuitBreaker(config *CircuitBreakerConfig) *CircuitBreaker

func (*CircuitBreaker) ChangeConfig

func (cb *CircuitBreaker) ChangeConfig(config *CircuitBreakerConfig)

func (*CircuitBreaker) Do

func (cb *CircuitBreaker) Do(ctx context.Context, run runFunc, fallback fallbackFunc) error

func (*CircuitBreaker) GetHalfOpenProbeSent

func (cb *CircuitBreaker) GetHalfOpenProbeSent() bool

func (*CircuitBreaker) Hit

func (cb *CircuitBreaker) Hit(nowMs int64, isProbe bool, isFailureHit bool)

根据请求的成败,驱动 CircuitBreaker 状态迁移。

func (*CircuitBreaker) SetHalfOpenProbeSent

func (cb *CircuitBreaker) SetHalfOpenProbeSent(halfOpenProbeSent bool)

func (*CircuitBreaker) Status

func (cb *CircuitBreaker) Status() int32

type CircuitBreakerConfig

type CircuitBreakerConfig struct {
	OpenStatusDurationMs int64
	// contains filtered or unexported fields
}

func NewCircuitBreakerConfig

func NewCircuitBreakerConfig() *CircuitBreakerConfig

func (*CircuitBreakerConfig) SetCellIntervalMs

func (c *CircuitBreakerConfig) SetCellIntervalMs(cellIntervalMs int64) *CircuitBreakerConfig

func (*CircuitBreakerConfig) SetFailureNum

func (c *CircuitBreakerConfig) SetFailureNum(failureNum int64) *CircuitBreakerConfig

func (*CircuitBreakerConfig) SetFailureRateThreshold

func (c *CircuitBreakerConfig) SetFailureRateThreshold(failureRateThreshold int64) *CircuitBreakerConfig

func (*CircuitBreakerConfig) SetForceOpen

func (c *CircuitBreakerConfig) SetForceOpen(forceOpen bool) *CircuitBreakerConfig

func (*CircuitBreakerConfig) SetMinQPS

func (c *CircuitBreakerConfig) SetMinQPS(minQPS int64) *CircuitBreakerConfig

func (*CircuitBreakerConfig) SetOpenStatusDurationMs

func (c *CircuitBreakerConfig) SetOpenStatusDurationMs(OpenStatusDurationMs int64) *CircuitBreakerConfig

func (*CircuitBreakerConfig) SetSize

Jump to

Keyboard shortcuts

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