Documentation ¶
Index ¶
- Constants
- func DecorateConsumer[T any](breaker CircuitBreaker, fn func(T) error) func(T) error
- func DecorateFunction[T any, R any](breaker CircuitBreaker, fn func(T) (R, error)) func(T) (R, error)
- func DecorateRunnable(breaker CircuitBreaker, fn func() error) func() error
- func DecorateSupplier[T any](breaker CircuitBreaker, fn func() (T, error)) func() (T, error)
- func DefaultFailureResultPredicate(_ any, err error) bool
- func DefaultWaitIntervalFunctionInOpenState(_ int64) time.Duration
- type CircuitBreaker
- type Config
- type ConfigBuilder
- func WithAutomaticTransitionFromOpenToHalfOpenEnabled(enabled bool) ConfigBuilder
- func WithFailureRateThreshold(failureRateThreshold float64) ConfigBuilder
- func WithFailureResultPredicate(predicate func(any, error) bool) ConfigBuilder
- func WithMaxWaitDurationInHalfOpenState(maxWaitDurationInHalfOpenState time.Duration) ConfigBuilder
- func WithPermittedNumberOfCallsInHalfOpenState(permittedNumberOfCallsInHalfOpenState int64) ConfigBuilder
- func WithSlidingWindow(slidingWindowType SlidingWindowType, slidingWindowSize int64, ...) ConfigBuilder
- func WithSlowCallDurationThreshold(slowCallDurationThreshold time.Duration) ConfigBuilder
- func WithSlowCallRateThreshold(slowCallRateThreshold float64) ConfigBuilder
- func WithWaitIntervalFunctionInOpenState(function func(int64) time.Duration) ConfigBuilder
- type ErrorEvent
- type Event
- type EventListener
- type EventType
- type FailureRateExceededEvent
- type Metrics
- type NotPermittedError
- type NotPermittedEvent
- type SlidingWindowType
- type SlowCallRateExceededEvent
- type State
- type StateTransitionEvent
- type SuccessEvent
Constants ¶
View Source
const DefaultAutomaticTransitionFromOpenToHalfOpenEnabled bool = false
View Source
const DefaultFailureRateThreshold float64 = 50
View Source
const DefaultMaxWaitDurationInHalfOpenState time.Duration = 0
View Source
const DefaultMinimumNumberOfCalls int64 = 100
View Source
const DefaultPermittedNumberOfCallsInHalfOpenState int64 = 10
View Source
const DefaultSlidingWindowSize int64 = 100
View Source
const DefaultSlidingWindowType = CountBased
View Source
const DefaultSlowCallDurationThreshold = time.Second * 60
View Source
const DefaultSlowCallRateThreshold float64 = 100
View Source
const DefaultWaitDurationInOpenState = time.Second * 60
Variables ¶
This section is empty.
Functions ¶
func DecorateConsumer ¶
func DecorateConsumer[T any](breaker CircuitBreaker, fn func(T) error) func(T) error
func DecorateFunction ¶
func DecorateFunction[T any, R any](breaker CircuitBreaker, fn func(T) (R, error)) func(T) (R, error)
func DecorateRunnable ¶
func DecorateRunnable(breaker CircuitBreaker, fn func() error) func() error
func DecorateSupplier ¶
func DecorateSupplier[T any](breaker CircuitBreaker, fn func() (T, error)) func() (T, error)
func DefaultFailureResultPredicate ¶ added in v0.3.0
Types ¶
type CircuitBreaker ¶
type CircuitBreaker interface { Name() string State() State Metrics() Metrics EventListener() EventListener TransitionToDisabled() error TransitionToForcedOpen() error TransitionToClosedState() error TransitionToOpenState() error TransitionToHalfOpenState() error Execute(func() (any, error)) (any, error) // contains filtered or unexported methods }
func NewCircuitBreaker ¶
func NewCircuitBreaker(name string, configs ...ConfigBuilder) CircuitBreaker
type ConfigBuilder ¶
type ConfigBuilder func(*Config)
func WithAutomaticTransitionFromOpenToHalfOpenEnabled ¶
func WithAutomaticTransitionFromOpenToHalfOpenEnabled(enabled bool) ConfigBuilder
func WithFailureRateThreshold ¶
func WithFailureRateThreshold(failureRateThreshold float64) ConfigBuilder
func WithFailureResultPredicate ¶ added in v0.3.0
func WithFailureResultPredicate(predicate func(any, error) bool) ConfigBuilder
func WithMaxWaitDurationInHalfOpenState ¶
func WithMaxWaitDurationInHalfOpenState(maxWaitDurationInHalfOpenState time.Duration) ConfigBuilder
func WithPermittedNumberOfCallsInHalfOpenState ¶
func WithPermittedNumberOfCallsInHalfOpenState(permittedNumberOfCallsInHalfOpenState int64) ConfigBuilder
func WithSlidingWindow ¶
func WithSlidingWindow(slidingWindowType SlidingWindowType, slidingWindowSize int64, minimumNumberOfCalls int64) ConfigBuilder
func WithSlowCallDurationThreshold ¶
func WithSlowCallDurationThreshold(slowCallDurationThreshold time.Duration) ConfigBuilder
func WithSlowCallRateThreshold ¶
func WithSlowCallRateThreshold(slowCallRateThreshold float64) ConfigBuilder
func WithWaitIntervalFunctionInOpenState ¶
func WithWaitIntervalFunctionInOpenState(function func(int64) time.Duration) ConfigBuilder
type ErrorEvent ¶ added in v0.4.1
type EventListener ¶
type EventListener interface { OnSuccessFunc(func(SuccessEvent)) EventListener OnErrorFunc(func(ErrorEvent)) EventListener OnNotPermittedFunc(func(NotPermittedEvent)) EventListener OnStateTransitionFunc(func(StateTransitionEvent)) EventListener OnFailureRateExceededFunc(func(FailureRateExceededEvent)) EventListener OnSlowCallRateExceededFunc(func(SlowCallRateExceededEvent)) EventListener DismissSuccessFunc(func(SuccessEvent)) EventListener DismissErrorFunc(func(ErrorEvent)) EventListener DismissNotPermittedFunc(func(NotPermittedEvent)) EventListener DismissStateTransitionFunc(func(StateTransitionEvent)) EventListener DismissFailureRateExceededFunc(func(FailureRateExceededEvent)) EventListener DismissSlowCallRateExceededFunc(func(SlowCallRateExceededEvent)) EventListener OnSuccess(fn.Consumer[SuccessEvent]) EventListener OnError(fn.Consumer[ErrorEvent]) EventListener OnNotPermitted(fn.Consumer[NotPermittedEvent]) EventListener OnStateTransition(fn.Consumer[StateTransitionEvent]) EventListener OnFailureRateExceeded(fn.Consumer[FailureRateExceededEvent]) EventListener OnSlowCallRateExceeded(fn.Consumer[SlowCallRateExceededEvent]) EventListener DismissSuccess(fn.Consumer[SuccessEvent]) EventListener DismissError(fn.Consumer[ErrorEvent]) EventListener DismissNotPermitted(fn.Consumer[NotPermittedEvent]) EventListener DismissStateTransition(fn.Consumer[StateTransitionEvent]) EventListener DismissFailureRateExceeded(fn.Consumer[FailureRateExceededEvent]) EventListener DismissSlowCallRateExceeded(fn.Consumer[SlowCallRateExceededEvent]) EventListener }
type FailureRateExceededEvent ¶ added in v0.4.1
type NotPermittedError ¶
type NotPermittedError struct {
// contains filtered or unexported fields
}
func (*NotPermittedError) Error ¶
func (e *NotPermittedError) Error() string
type NotPermittedEvent ¶ added in v0.4.1
type NotPermittedEvent interface { Event }
type SlidingWindowType ¶
type SlidingWindowType string
const ( TimeBased SlidingWindowType = "TIME_BASED" CountBased SlidingWindowType = "COUNT_BASED" )
type SlowCallRateExceededEvent ¶ added in v0.4.1
type StateTransitionEvent ¶ added in v0.4.1
type SuccessEvent ¶ added in v0.4.1
Click to show internal directories.
Click to hide internal directories.