update breaker doc

master v1.0.21
kevin 4 years ago
parent a14bd309a9
commit 81bf122fa4

@ -25,7 +25,7 @@ type (
Acceptable func(err error) bool Acceptable func(err error) bool
Breaker interface { Breaker interface {
// Name returns the name of the netflixBreaker. // Name returns the name of the Breaker.
Name() string Name() string
// Allow checks if the request is allowed. // Allow checks if the request is allowed.
@ -34,34 +34,34 @@ type (
// If not allow, ErrServiceUnavailable will be returned. // If not allow, ErrServiceUnavailable will be returned.
Allow() (Promise, error) Allow() (Promise, error)
// Do runs the given request if the netflixBreaker accepts it. // Do runs the given request if the Breaker accepts it.
// Do returns an error instantly if the netflixBreaker rejects the request. // Do returns an error instantly if the Breaker rejects the request.
// If a panic occurs in the request, the netflixBreaker handles it as an error // If a panic occurs in the request, the Breaker handles it as an error
// and causes the same panic again. // and causes the same panic again.
Do(req func() error) error Do(req func() error) error
// DoWithAcceptable runs the given request if the netflixBreaker accepts it. // DoWithAcceptable runs the given request if the Breaker accepts it.
// DoWithAcceptable returns an error instantly if the netflixBreaker rejects the request. // DoWithAcceptable returns an error instantly if the Breaker rejects the request.
// If a panic occurs in the request, the netflixBreaker handles it as an error // If a panic occurs in the request, the Breaker handles it as an error
// and causes the same panic again. // and causes the same panic again.
// acceptable checks if it's a successful call, even if the err is not nil. // acceptable checks if it's a successful call, even if the err is not nil.
DoWithAcceptable(req func() error, acceptable Acceptable) error DoWithAcceptable(req func() error, acceptable Acceptable) error
// DoWithFallback runs the given request if the netflixBreaker accepts it. // DoWithFallback runs the given request if the Breaker accepts it.
// DoWithFallback runs the fallback if the netflixBreaker rejects the request. // DoWithFallback runs the fallback if the Breaker rejects the request.
// If a panic occurs in the request, the netflixBreaker handles it as an error // If a panic occurs in the request, the Breaker handles it as an error
// and causes the same panic again. // and causes the same panic again.
DoWithFallback(req func() error, fallback func(err error) error) error DoWithFallback(req func() error, fallback func(err error) error) error
// DoWithFallbackAcceptable runs the given request if the netflixBreaker accepts it. // DoWithFallbackAcceptable runs the given request if the Breaker accepts it.
// DoWithFallbackAcceptable runs the fallback if the netflixBreaker rejects the request. // DoWithFallbackAcceptable runs the fallback if the Breaker rejects the request.
// If a panic occurs in the request, the netflixBreaker handles it as an error // If a panic occurs in the request, the Breaker handles it as an error
// and causes the same panic again. // and causes the same panic again.
// acceptable checks if it's a successful call, even if the err is not nil. // acceptable checks if it's a successful call, even if the err is not nil.
DoWithFallbackAcceptable(req func() error, fallback func(err error) error, acceptable Acceptable) error DoWithFallbackAcceptable(req func() error, fallback func(err error) error, acceptable Acceptable) error
} }
BreakerOption func(breaker *circuitBreaker) Option func(breaker *circuitBreaker)
Promise interface { Promise interface {
Accept() Accept()
@ -89,7 +89,7 @@ type (
} }
) )
func NewBreaker(opts ...BreakerOption) Breaker { func NewBreaker(opts ...Option) Breaker {
var b circuitBreaker var b circuitBreaker
for _, opt := range opts { for _, opt := range opts {
opt(&b) opt(&b)
@ -127,7 +127,7 @@ func (cb *circuitBreaker) Name() string {
return cb.name return cb.name
} }
func WithName(name string) BreakerOption { func WithName(name string) Option {
return func(b *circuitBreaker) { return func(b *circuitBreaker) {
b.name = name b.name = name
} }

Loading…
Cancel
Save