Documentation
¶
Index ¶
- func Retry(ctx context.Context, config RetryConfig, operation func() error) error
- type CircuitBreaker
- func (cb *CircuitBreaker) AllowRequest() bool
- func (cb *CircuitBreaker) Execute(operation func() error) error
- func (cb *CircuitBreaker) GetFailureCount() int
- func (cb *CircuitBreaker) GetState() CircuitState
- func (cb *CircuitBreaker) RecordFailure()
- func (cb *CircuitBreaker) RecordSuccess()
- func (cb *CircuitBreaker) Reset()
- type CircuitState
- type RetryConfig
- type RetryableOperation
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CircuitBreaker ¶
type CircuitBreaker struct {
// contains filtered or unexported fields
}
CircuitBreaker prevents cascading failures by monitoring errors
func NewCircuitBreaker ¶
func NewCircuitBreaker(name string, failureThreshold int, resetTimeout time.Duration) *CircuitBreaker
NewCircuitBreaker creates a new circuit breaker
func (*CircuitBreaker) AllowRequest ¶
func (cb *CircuitBreaker) AllowRequest() bool
AllowRequest checks if a request is allowed through the circuit breaker
func (*CircuitBreaker) Execute ¶
func (cb *CircuitBreaker) Execute(operation func() error) error
Execute runs an operation through the circuit breaker
func (*CircuitBreaker) GetFailureCount ¶
func (cb *CircuitBreaker) GetFailureCount() int
GetFailureCount returns the current failure count
func (*CircuitBreaker) GetState ¶
func (cb *CircuitBreaker) GetState() CircuitState
GetState returns the current state of the circuit breaker
func (*CircuitBreaker) RecordFailure ¶
func (cb *CircuitBreaker) RecordFailure()
RecordFailure records a failed operation
func (*CircuitBreaker) RecordSuccess ¶
func (cb *CircuitBreaker) RecordSuccess()
RecordSuccess records a successful operation
func (*CircuitBreaker) Reset ¶
func (cb *CircuitBreaker) Reset()
Reset resets the circuit breaker to closed state
type CircuitState ¶
type CircuitState int
CircuitState represents the state of the circuit breaker
const ( // CircuitClosed allows requests through CircuitClosed CircuitState = iota // CircuitOpen blocks requests CircuitOpen // CircuitHalfOpen allows limited requests to test recovery CircuitHalfOpen )
func (CircuitState) String ¶
func (s CircuitState) String() string
String returns the string representation of the state
type RetryConfig ¶
type RetryConfig struct {
MaxAttempts int
InitialDelay time.Duration
MaxDelay time.Duration
BackoffFactor float64
JitterFactor float64
}
RetryConfig holds configuration for retry behavior
func DefaultRetryConfig ¶
func DefaultRetryConfig() RetryConfig
DefaultRetryConfig returns sensible default retry configuration
type RetryableOperation ¶
type RetryableOperation struct {
Name string
Operation func() error
Config RetryConfig
OnRetry func(attempt int, err error)
}
RetryableOperation wraps an operation with retry logic