Documentation
¶
Index ¶
- Variables
- func Do(name string, req func() error) error
- func DoCtx(ctx context.Context, name string, req func() error) error
- func DoWithAcceptable(name string, req func() error, acceptable Acceptable) error
- func DoWithAcceptableCtx(ctx context.Context, name string, req func() error, acceptable Acceptable) error
- func DoWithFallback(name string, req func() error, fallback Fallback) error
- func DoWithFallbackAcceptable(name string, req func() error, fallback Fallback, acceptable Acceptable) error
- func DoWithFallbackAcceptableCtx(ctx context.Context, name string, req func() error, fallback Fallback, ...) error
- func DoWithFallbackCtx(ctx context.Context, name string, req func() error, fallback Fallback) error
- func NoBreakerFor(name string)
- type Acceptable
- type Breaker
- type Fallback
- type Option
- type Promise
Constants ¶
This section is empty.
Variables ¶
ErrServiceUnavailable is returned when the Breaker state is open.
Functions ¶
func DoWithAcceptable ¶
func DoWithAcceptable(name string, req func() error, acceptable Acceptable) error
DoWithAcceptable calls Breaker.DoWithAcceptable on the Breaker with given name.
func DoWithAcceptableCtx ¶ added in v1.6.5
func DoWithAcceptableCtx(ctx context.Context, name string, req func() error, acceptable Acceptable) error
DoWithAcceptableCtx calls Breaker.DoWithAcceptableCtx on the Breaker with given name.
func DoWithFallback ¶
DoWithFallback calls Breaker.DoWithFallback on the Breaker with given name.
func DoWithFallbackAcceptable ¶
func DoWithFallbackAcceptable(name string, req func() error, fallback Fallback, acceptable Acceptable) error
DoWithFallbackAcceptable calls Breaker.DoWithFallbackAcceptable on the Breaker with given name.
func DoWithFallbackAcceptableCtx ¶ added in v1.6.5
func DoWithFallbackAcceptableCtx(ctx context.Context, name string, req func() error, fallback Fallback, acceptable Acceptable) error
DoWithFallbackAcceptableCtx calls Breaker.DoWithFallbackAcceptableCtx on the Breaker with given name.
func DoWithFallbackCtx ¶ added in v1.6.5
DoWithFallbackCtx calls Breaker.DoWithFallbackCtx on the Breaker with given name.
func NoBreakerFor ¶
func NoBreakerFor(name string)
NoBreakerFor disables the circuit breaker for the given name.
Types ¶
type Acceptable ¶
Acceptable is the func to check if the error can be accepted.
type Breaker ¶
type Breaker interface {
// Name returns the name of the Breaker.
Name() string
// Allow checks if the request is allowed.
// If allowed, a promise will be returned,
// otherwise ErrServiceUnavailable will be returned as the error.
// The caller needs to call promise.Accept() on success,
// or call promise.Reject() on failure.
Allow() (Promise, error)
// AllowCtx checks if the request is allowed when ctx isn't done.
AllowCtx(ctx context.Context) (Promise, error)
// Do runs the given request if the Breaker accepts it.
// Do returns an error instantly if the Breaker rejects the request.
// If a panic occurs in the request, the Breaker handles it as an error
// and causes the same panic again.
Do(req func() error) error
// DoCtx runs the given request if the Breaker accepts it when ctx isn't done.
DoCtx(ctx context.Context, req func() error) error
// DoWithAcceptable runs the given request if the Breaker accepts it.
// DoWithAcceptable returns an error instantly if the Breaker rejects the request.
// If a panic occurs in the request, the Breaker handles it as an error
// and causes the same panic again.
// acceptable checks if it's a successful call, even if the error is not nil.
DoWithAcceptable(req func() error, acceptable Acceptable) error
// DoWithAcceptableCtx runs the given request if the Breaker accepts it when ctx isn't done.
DoWithAcceptableCtx(ctx context.Context, req func() error, acceptable Acceptable) error
// DoWithFallback runs the given request if the Breaker accepts it.
// DoWithFallback runs the fallback if the Breaker rejects the request.
// If a panic occurs in the request, the Breaker handles it as an error
// and causes the same panic again.
DoWithFallback(req func() error, fallback Fallback) error
// DoWithFallbackCtx runs the given request if the Breaker accepts it when ctx isn't done.
DoWithFallbackCtx(ctx context.Context, req func() error, fallback Fallback) error
// DoWithFallbackAcceptable runs the given request if the Breaker accepts it.
// DoWithFallbackAcceptable runs the fallback if the Breaker rejects the request.
// If a panic occurs in the request, the Breaker handles it as an error
// and causes the same panic again.
// acceptable checks if it's a successful call, even if the error is not nil.
DoWithFallbackAcceptable(req func() error, fallback Fallback, acceptable Acceptable) error
// DoWithFallbackAcceptableCtx runs the given request if the Breaker accepts it when ctx isn't done.
DoWithFallbackAcceptableCtx(ctx context.Context, req func() error, fallback Fallback,
acceptable Acceptable) error
}
A Breaker represents a circuit breaker.
func GetBreaker ¶
GetBreaker returns the Breaker with the given name.
func NewBreaker ¶
NewBreaker returns a Breaker object. opts can be used to customize the Breaker.
func NopBreaker ¶ added in v1.6.3
func NopBreaker() Breaker
NopBreaker returns a breaker that never trigger breaker circuit.