Documentation
¶
Index ¶
- Constants
- Variables
- func MakeDeadline(timeout time.Duration) time.Time
- type CircuitBreaker
- type CircuitBreakerOptionFunc
- func MaxFailureCount(failureCount int) CircuitBreakerOptionFunc
- func MaxRetries(retries int) CircuitBreakerOptionFunc
- func ResetTimeout(timeout time.Duration) CircuitBreakerOptionFunc
- func RetryPolicy(policyFunc RetryPolicyFunc) CircuitBreakerOptionFunc
- func StateChangeHandler(handler EventHandler) CircuitBreakerOptionFunc
- func Timeout(timeout time.Duration) CircuitBreakerOptionFunc
- type CircuitBreakerOptions
- type EventHandler
- type Future
- type FutureImpl
- type NonRetryableError
- type RetryPolicyFunc
- type TryHandler
Constants ¶
View Source
const ( StateOpen = int32(0) StateClosed = int32(2) )
View Source
const MaxDuration int64 = 1<<63 - 1
Variables ¶
View Source
var ErrCircuitOpen = errors.New("circuit open")
View Source
var ErrDeadlineExceeded = errors.New("deadline exceeded")
Functions ¶
Types ¶
type CircuitBreaker ¶
type CircuitBreaker struct { Deadline time.Time RetryPolicyFunc RetryPolicyFunc StateChangeHandler EventHandler MaxRetries int ResetTimeout time.Duration MaxFailureCount int32 CurrentFailureCount int32 State int32 }
func NewCircuitBreaker ¶
func NewCircuitBreaker(fs ...CircuitBreakerOptionFunc) *CircuitBreaker
func (*CircuitBreaker) Try ¶
func (cb *CircuitBreaker) Try(handler TryHandler) (interface{}, error)
func (*CircuitBreaker) TryContext ¶
func (cb *CircuitBreaker) TryContext(ctx context.Context, handler TryHandler) (interface{}, error)
func (*CircuitBreaker) TryContextFuture ¶
func (cb *CircuitBreaker) TryContextFuture(ctx context.Context, tryHandler TryHandler) Future
type CircuitBreakerOptionFunc ¶
type CircuitBreakerOptionFunc func(opts *CircuitBreakerOptions) error
func MaxFailureCount ¶
func MaxFailureCount(failureCount int) CircuitBreakerOptionFunc
func MaxRetries ¶
func MaxRetries(retries int) CircuitBreakerOptionFunc
func ResetTimeout ¶
func ResetTimeout(timeout time.Duration) CircuitBreakerOptionFunc
func RetryPolicy ¶
func RetryPolicy(policyFunc RetryPolicyFunc) CircuitBreakerOptionFunc
func StateChangeHandler ¶
func StateChangeHandler(handler EventHandler) CircuitBreakerOptionFunc
func Timeout ¶
func Timeout(timeout time.Duration) CircuitBreakerOptionFunc
type CircuitBreakerOptions ¶
type CircuitBreakerOptions struct { RetryPolicyFunc RetryPolicyFunc StateChangeHandler EventHandler MaxRetries int ResetTimeout time.Duration Timeout time.Duration MaxFailureCount int32 }
func DefaultCircuitBreakerOptions ¶
func DefaultCircuitBreakerOptions() *CircuitBreakerOptions
func NewCircuitBreakerOptions ¶
func NewCircuitBreakerOptions(fs ...CircuitBreakerOptionFunc) (*CircuitBreakerOptions, error)
type EventHandler ¶
type EventHandler func(state int32)
type Future ¶
type Future interface { // Result blocks until the future is complete Result() (maybeResult interface{}, err error) }
Future holds a value computed in the future Futures are not re-usable
type FutureImpl ¶
type FutureImpl struct {
// contains filtered or unexported fields
}
func NewFailedFuture ¶
func NewFailedFuture(err error) *FutureImpl
func NewFutureImpl ¶
func NewFutureImpl() *FutureImpl
func NewSucceededFuture ¶
func NewSucceededFuture(result interface{}) *FutureImpl
func (FutureImpl) Result ¶
func (f FutureImpl) Result() (interface{}, error)
type NonRetryableError ¶
type NonRetryableError struct {
Err error
}
func WrapNonRetryableError ¶
func WrapNonRetryableError(err error) *NonRetryableError
func (NonRetryableError) Error ¶
func (n NonRetryableError) Error() string
func (NonRetryableError) Is ¶
func (e NonRetryableError) Is(target error) bool
type RetryPolicyFunc ¶
Click to show internal directories.
Click to hide internal directories.