breaker

package
v0.5.0-beta2.8 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2019 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Breaker

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

func New

func New(watcher RecoverableWatcher) *Breaker

func SimpleThreePhaseBreaker

func SimpleThreePhaseBreaker(abnormalPerSecond float64, bucketCount int, minWaitOnOpen, maxWaitOnOpen time.Duration) *Breaker

func (*Breaker) Accept

func (breaker *Breaker) Accept(abnormal bool)

func (*Breaker) OffChan

func (breaker *Breaker) OffChan() <-chan struct{}

func (*Breaker) OnChan

func (breaker *Breaker) OnChan() <-chan struct{}

func (*Breaker) Opening

func (breaker *Breaker) Opening() bool

func (*Breaker) Reset

func (breaker *Breaker) Reset(acceptor RecoverableWatcher)

type CounterWatcher

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

func NewCounterWatcher

func NewCounterWatcher(count int32, abnormal bool) *CounterWatcher

func (*CounterWatcher) Accept

func (watcher *CounterWatcher) Accept(abnormal bool)

func (*CounterWatcher) WaitUnacceptable

func (watcher *CounterWatcher) WaitUnacceptable(ctx context.Context)

type EmptyRecovery

type EmptyRecovery struct{}

func (EmptyRecovery) WaitRecovery

func (er EmptyRecovery) WaitRecovery(ctx context.Context)

type RateAcceptor

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

accept imply

func NewRateWatcher

func NewRateWatcher(limiter *rate.Limiter) *RateAcceptor

func (*RateAcceptor) Accept

func (acceptor *RateAcceptor) Accept(abnormal bool)

func (*RateAcceptor) WaitUnacceptable

func (acceptor *RateAcceptor) WaitUnacceptable(ctx context.Context)

type RecoverableWatcher

type RecoverableWatcher interface {
	Accept(abnormal bool)
	WaitUnacceptable(ctx context.Context) WatchableRecovery
}

func ThreePhaseWatcher

func ThreePhaseWatcher(watcher Watcher, recovery Recovery, unstableWatcher Watcher, stableWatcher Watcher) RecoverableWatcher

三项熔断器

type Recovery

type Recovery interface {
	WaitRecovery(ctx context.Context)
}

type TimeRecovery

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

func NewDurationRecovery

func NewDurationRecovery(min, max time.Duration) *TimeRecovery

func (*TimeRecovery) WaitRecovery

func (recovery *TimeRecovery) WaitRecovery(ctx context.Context)

type WatchableRecovery

type WatchableRecovery interface {
	WaitRecovery(ctx context.Context) RecoverableWatcher
}

type Watcher

type Watcher interface {
	// accept record
	Accept(abnormal bool)

	// wait to recovery status. (means break open)
	WaitUnacceptable(ctx context.Context)
}

type WatcherChain

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

func NewWatcherChain

func NewWatcherChain(watcher Watcher, recovery Recovery) *WatcherChain

func (*WatcherChain) Accept

func (ww *WatcherChain) Accept(abnormal bool)

func (*WatcherChain) ChainTo

func (ww *WatcherChain) ChainTo(wc RecoverableWatcher)

func (WatcherChain) WaitRecovery

func (ww WatcherChain) WaitRecovery(ctx context.Context) RecoverableWatcher

func (*WatcherChain) WaitUnacceptable

func (ww *WatcherChain) WaitUnacceptable(ctx context.Context) WatchableRecovery

type WatcherSelector

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

func NewWatcherSelector

func NewWatcherSelector(rw []RecoverableWatcher) *WatcherSelector

func (*WatcherSelector) Accept

func (selector *WatcherSelector) Accept(abnormal bool)

func (*WatcherSelector) WaitUnacceptable

func (selector *WatcherSelector) WaitUnacceptable(ctx context.Context) WatchableRecovery

Jump to

Keyboard shortcuts

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